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
был прерван или завершился с ошибкой при включении или отключении контрольных сумм, конфигурация контрольных сумм данных в кластере останется без изменений, и программу можно запустить повторно для завершения операции.