Задание 3: Периодичность проверки целостности
В этом задании мы изучим параметры настройки проверки целостности, установим периодичность ее выполнения и настроим ожидания.
Параметры настройки проверки целостности
Есть несколько параметров настройки, связанных с проверкой целостности объектов:
postgres=# \dconfig integrity*
List of configuration parameters
Parameter | Value
-----------------------------+-------
integrity_check_delay | 1d
integrity_check_select_wait | 10s
integrity_check_wait | 5s
(3 rows)
На периодичность настройки, запускаемой процессом IntCheckWorker, влияет параметр integrity_check_delay. По умолчанию периодичность проверки выполняется раз в сутки.
Процесс IntCheckWorker автоматически запускается при старте СУБД, он создает файлы json для контролируемых объектов, если эти файлы отсутствуют. Для проверки целостности объектов процесс IntCheckWorker запускает рабочие процессы, а не делает это самостоятельно.
При успешном завершении проверок целостности процесс IntCheckWorker сообщает об этом. Если сообщение о завершении проверки не поступает, то происходит блокировка СУБД и принудительное завершение процесса через сигнал SIGTERM. Если, получив, сигнал SIGTERM, процесс не завершает работу, его снимают с исполнения аварийно, посылая ему сигнал SIGKILL с последующей перезагрузкой всех процессов СУБД.
Настройка периодичности проверки
Изменяя параметр integrity_check_delay можно настроить иную периодичность проверки целостности, чем одни сутки:
postgres=# SELECT * FROM pg_settings WHERE name = 'integrity_check_delay' \gx
-[ RECORD 1 ]---+---------------------------
name | integrity_check_delay
setting | 86400
unit | s
category | Ungrouped
short_desc | Sleep time between rounds.
extra_desc |
context | sighup
vartype | integer
source | default
min_val | 5
max_val | 86400
enumvals |
boot_val | 86400
reset_val | 86400
sourcefile |
sourceline |
pending_restart | f
Минимальное значение этого параметра – одна секунда.
Настройка ожиданий
Существуют еще два параметра, связанные с настройками проверки целостности:
postgres=# \dconfig+ integrity_*wait
List of configuration parameters
Parameter | Value | Type | Context | Access privileges
-----------------------------+-------+---------+---------+-------------------
integrity_check_select_wait | 10s | integer | sighup |
integrity_check_wait | 5s | integer | sighup |
(2 rows)
Параметр integrity_check_wait позволяет ограничить время, затрачиваемое на проверку целостности. При превышении установленного этим параметром значения происходит блокировка сеансов пользователей. Этот параметр предусмотрен на случай постановки на контроль большого количества объектов одномоментно.
Параметр integrity_check_select_wait задает период запуска автоматической проверки контроля целостности объектов.
Подробнее о параметрах смотрите в документации.