SET_MODE_READONLY
Содержание раздела
Поддерживается в версиях: 7.8 / 7.7 / 7.6 / 7.5.
В зависимости от параметров запрос включает или выключает режим «Только для чтения» для всех логических БД окружения на всех нодах кластера. При включении режима запрос может проигнорировать или отменить незавершенные операции записи (см. Синтаксис).
Режим действует независимо от режима, включенного на уровне отдельных сущностей.
Подробнее о режиме см. в разделе Режим «Только для чтения».
Синтаксис
SET_MODE_READONLY(enable_mode[, erase_running_write_ops])
Аргументы запроса могут быть заданы как индексированные и (или) именованные параметры.
Параметры:
enable_mode(boolean)-
Флаг, управляющий режимом «Только для чтения». Возможные значения:
true— включить режим;false— выключить режим, вернув кластер в штатную работу.
-
erase_running_write_ops(boolean) -
Флаг, управляющий отменой выполняемых операций записи (в статусе 0) при включении режима «Только для чтения». Возможные значения:
false(по умолчанию) — игнорировать операции, не отменяя их, и сразу вернуть ответ;true— отменить операции и вернуть ответ только после завершения отмены.
При выключении режима флаг игнорируется.
После выполнения SET_MODE_READONLY(true[, false]) убедитесь, что все операции записи завершены (GET_WRITE_OPERATIONS возвращает пустой ответ). При наличии незавершенных операций дождитесь их завершения или отмените их.
Варианты ответа
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Результат выполнения
Включение режима
При успешном включении режима «Только для чтения» система:
- Устанавливает запрет на новые операции по изменению схемы* и операции записи.
- Если запущен с флагом отмены выполняемых операций записи:
- Дожидается завершения операций записи в статусе 1 (Подготовлена).
- Запускает отмену операций записи в статусе 0 (Выполняется) и дожидается завершения процесса в течение
DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS. - Если в процессе сменился лидер кластера, новый лидер автоматически завершает включение режима и отмену операций.
- Если операции не успели отмениться за
DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS, завершает исполнение с ошибкой.
- Возвращает ответ.
* Операции по изменению схемы блокируются для логических, снапшот- и постоянных прокси-таблиц, а также логических и материализованных представлений.
Выключение режима
При успешном выключении режима «Только для чтения» запрос:
- Снимает запрет на новые DDL-операции и операции записи.
- Возвращает ответ.
Ограничения
- Выключение режима недоступно, пока предыдущий запрос
SET_MODE_READONLYвключает режим с отменой операций записи. - Запрос, отменяющий операции записи:
- не гарантирует консистентность данных при отмене операций загрузки данных из 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)