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 можно перезапустить ещё раз для повторения невыполненной операции.