SET_MODE_READONLY
Содержание раздела
Поддерживается в версиях: 7.5.
В зависимости от параметров запрос включает или выключает режим «Только для чтения» во всех логических БД окружения на всех нодах кластера.
При включении режима «Только для чтения» запрос может игнорировать или отменить незавершенные операции записи. Подробнее см. в секции Синтаксис.
Синтаксис
SET_MODE_READONLY(enable_mode[, erase_running_write_ops])
Параметры:
enable_mode-
Флаг, управляющий режимом «Только для чтения». Возможные значения:
true— включить режим;false— выключить режим, вернув кластер в штатную работу.
erase_running_write_ops-
Флаг, управляющий отменой выполняемых операций записи (в статусе 0) при включении режима «Только для чтения». Возможные значения:
false(по умолчанию) — игнорировать операции, не отменяя их, и сразу вернуть ответ;true— отменить операции и вернуть ответ только после завершения отмены.
После выполнения SET_MODE_READONLY(true[, false]) убедитесь, что все операции записи завершены (GET_WRITE_OPERATIONS возвращает пустой ответ). Если есть незавершенные операции, дождитесь их завершения или отмените их командой ERASE_WRITE_OPERATION.
Варианты ответа
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Результат выполнения
Включение режима
При успешном включении режима «Только для чтения» запрос:
- Устанавливает запрет на новые DDL-операции (кроме DDL для внешних таблиц, временных прокси-таблиц и standalone-таблиц) и операции записи.
- Если запущен с флагом отмены выполняемых операций записи:
- Запускает отмену операций записи и дожидается завершения процесса в течение
DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS. - Если в процессе сменился лидер кластера, новый лидер автоматически завершает включение режима и отмену операций.
- Если операции не успели отмениться за
DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS, исполнение завершается с ошибкой.
- Запускает отмену операций записи и дожидается завершения процесса в течение
- Возвращает ответ.
Выключение режима
При успешном выключении режима «Только для чтения» запрос:
- Снимает запрет на новые DDL-операции и операции записи.
- Возвращает ответ.
Ограничения
- Выключение режима недоступно, пока предыдущий запрос включает режим с отменой операций записи.
- Запрос, отменяющий операции записи:
- не гарантирует консистентность данных при отмене операций загрузки данных из Kafka в ADB;
- завершается неуспешно, если операции записи не удалось отменить в течение
DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS. В этом случае дождитесь завершения отмены операций и повторите команду.
Примеры
Включение режима «Только для чтения»
Включение режима «Только для чтения» для кластера без отмены выполняемых операций записи:
SET_MODE_READONLY(true);
-- равносилен запросу
SET_MODE_READONLY(true, false);
Включение режима «Только для чтения» для кластера с отменой выполняемых операций записи:
SET_MODE_READONLY(true, true)
Выключение режима «Только для чтения»
SET_MODE_READONLY(false)