pg_checksums#
Примечание
Эта страница переведена при помощи нейросети GigaChat.
pg_checksums — включает, отключает или проверяет контрольные суммы данных в кластере баз данных PostgreSQL.
Синтаксис#
pg_checksums [option ...] [[-D | --pgdata] datadir]
Описание#
pg_checksums проверяет наличие контрольных сумм в кластере и может включать или отключать их. Перед запуском pg_checksums сервер должен быть корректно остановлен. Если при проверке контрольных сумм ошибки не обнаружены, код завершения будет равен нулю. Если же найдены поврежденные контрольные суммы, код завершения будет ненулевым. При попытке включить или отключить контрольные суммы код завершения будет ненулевым, если операция не удалась.
При проверке контрольных сумм сканируется каждый файл в кластере. Включение контрольных сумм переписывает каждый блок файла с измененной контрольной суммой. Отключение контрольных сумм обновляет только файл pg_control.
Параметры#
Для утилиты pg_checksums существуют следующие параметры командной строки:
-D directory--pgdata=directoryУказывает каталог, в котором расположен кластер баз данных.
-c--checkВыполняет проверку контрольных сумм (по умолчанию).
-d--disableОтключает контрольные суммы.
-e--enableВключает контрольные суммы.
-f filenode--filenode=filenodeПроверяет контрольные суммы только в отношении, которому соответствует указанный
filenode.-N--no-syncЗавершает процесс
pg_checksumsбез ожидания записи файлов на диск, не действует при использовании--check. Ускоряет выполнение, но при последующем сбое операционной системы может привести к повреждению обновленного каталога данных. По умолчанию утилита ждет, пока все файлы будут надежно записаны на диск.Параметр используется при тестировании и не предназначен для производственной среды.
-P--progressВключает вывод сообщений о прогрессе. Эти сообщения будут выводиться при проверке или включении контрольных сумм.
--sync-method=methodЕсли установлено значение
fsync, которое является значением по умолчанию,pg_checksumsрекурсивно открывает и синхронизирует все файлы в каталоге данных. Поиск файлов будет следовать символическим ссылкам для каталога WAL и каждого настроенного табличного пространства.На Linux вместо этого можно использовать
syncfs, чтобы попросить операционную систему синхронизировать всю файловую систему, содержащую каталог данных, файлы WAL и каждое табличное пространство.Этот параметр не имеет эффекта при использовании
--no-sync.-v--verboseВключает режим подробного вывода. Список всех проверенных файлов.
-V--versionВыводит версию
pg_checksumsи завершается.-?--helpПоказывает справку о параметрах командной строки утилиты
pg_checksumsи завершается.
Переменные окружения#
Утилита поддерживает переменные окружения:
PGDATAЗадает каталог хранения данных кластера, можно изменить параметром
-D.PG_COLORУказывает, использовать ли цвет в диагностических сообщениях. Возможные значения —
always,autoиnever.
Примечания#
Включение контрольных сумм в большом кластере может занять значительное время. В процессе этой операции сервер и другие программы, которые записывают данные в каталог данных, должны быть остановлены, чтобы избежать потери данных.
Если используется репликационная конфигурация с инструментами, которые выполняют прямое копирование блоков файлов отношений (например, pg_rewind), то включение или отключение контрольных сумм может привести к повреждению страниц из-за несоответствия контрольных сумм, если операция не будет выполнена одинаково на всех узлах. Для безопасности при изменении контрольных сумм в репликационной среде рекомендуется остановить все кластеры перед выполнением операции на каждом из них. Также рекомендуется уничтожить старые резервные копии, выполнить операцию на основном сервере и затем создать новые резервные копии.
Если процесс выполнения pg_checksums был прерван или завершился с ошибкой при включении или отключении контрольных сумм, конфигурация контрольных сумм данных в кластере останется без изменений, и программу можно запустить повторно для завершения операции.