pg_checksums

pg_checksums — включить, отключить или проверить контрольные суммы данных в кластере Postgres Pro

Синтаксис

pg_checksums [параметр...] [[ -D | --pgdata ]каталог_данных]

Описание

Утилита pg_checksums позволяет проверить, включить или отключить контрольные суммы данных в кластере Postgres Pro. Перед запуском pg_checksums сервер должен быть остановлен в штатном режиме. При проверке контрольных сумм она возвращает нулевой код состояния, если ошибок не найдено, либо ненулевой код, есл�� обнаружится хотя бы одна ошибка. При включении или отключении контрольных сумм ненулевой код завершения показывает, что выполнить операцию не удалось.

В процессе проверки контрольных сумм проверяется каждый файл в кластере. При включении контрольных сумм для каждого блока файлов отношений рассчитывается контрольная сумма и он перезаписывается на месте, а при отключении изменяется только файл pg_control.

Параметры

Принимаются следующие параметры командной строки:

-D каталог
--pgdata=каталог

Указывает каталог, в котором располагается кластер баз данных.

-c
--check

Запускает проверку контрольных сумм. Это режим по умолчанию, который выбирается, когда не указан никакой другой.

-d
--disable

Отключает контрольные суммы.

-e
--enable

Включает контрольные суммы.

-f файловый_узел
--filenode=файловый_узел

Проверять контрольные суммы только в отношении, которому соответствует указанный файловый_узел.

-N
--no-sync

По умолчанию pg_checksums ждёт, пока все файлы не будут надёжно записаны на диск. С данным параметром pg_checksums завершается быстрее, без ожидания, но в случае неожиданного сбоя операционной системы каталог с изменёнными файлами может повредиться. Этот параметр может быть полезен при тестировании; в производственной среде применять его не следует. В режиме --check он не оказывает никакого влияния.

-P
--progress

Включает вывод сообщений о прогрессе. Эти сообщения будут выводиться при проверке или включении контрольных сумм.

-v
--verbose

Выводить подробные сообщения, в частности список всех проверенных файлов.

-V
--version

Выводит версию pg_checksums и завершает работу.

-?
--help

Показывает справку по аргументам командной строки pg_checksums и завершает работу.

Переменные окружения

PGDATA

Указывает каталог, в котором располагается кластер баз данных; может переопределяться параметром -D.

PG_COLOR

Выбирает вариант использования цвета в диагностических сообщениях. Возможные значения: always (всегда), auto (автоматически) и never (никогда).

Примечания

Включение контрольных сумм в большом кластере может занять продолжительное время. Пока эта операция не закончится, нельзя запускать сервер или другие программы, которые могут произвести запись в каталог данных, иначе возможна потеря данных.

В конфигурациях, где организована репликация, и она осуществляется путём непосредственного копирования блоков отношений на уровне файлов (например, с помощью pg_rewind), включение или отключение контрольных сумм может привести к повреждению страниц (а именно, расхождению контрольных сумм), если эта операция не будет выполнена согласованно на всех узлах. Поэтому в подобных конфигурациях рекомендуется остановить все кластеры, с тем чтобы одновременно переключить их в другой режим. Ещё один безопасный вариант — ликвидировать все ведомые серверы, произвести нужную операцию на ведущем, а затем создать ведомые серверы заново.

Если pg_checksums прерывается или работающий процесс уничтожается при включении или отключении контрольных сумм, конфигурация контрольных сумм в кластере остаётся неизменной, и pg_checksums можно перезапустить ещё раз для повторения невыполненной операции.