qhb_checksums
qhb_checksums
- включить, отключить или проверить контрольные суммы
данных в кластере базы данных QHB
Синтаксис
qhb_checksums [FLAGS] [OPTIONS] --pgdata <pgdata>
qhb_checksums [option...] [[ -D | --pgdata ] datadir]
Описание
qhb_checksums
- утилита для проверки, включения и выключения контрольных
сумм данных в кластере QHB. Сервер должен быть штатным образом выключен перед запуском
qhb_checksums
. При проверке контрольных сумм код завершения равен нулю,
если ошибок нет, и ненулевой, если обнаружена хотя бы
одна ошибка контрольной суммы. При включении или отключении контрольных
сумм ненулевой код завершения, означает, что операция не удалась.
У всех файлов таблиц есть заголовок, по умолчанию поле с контрольной суммой в нём равно 0, также в общем файле ControlFile "версия чексумм" = 0 (1 - включена). При первом запуске нужно включить эти чексуммы с помощью флага --enable, который поставит версию чексумм "1" и изменит поле чексуммы во всех заголовках файлов таблиц БД (папки global, base, pg_tblspc). Если нужно проверить, правильные ли чексуммы в файлах, то программа запоминает значение чексуммы из файла, обнуляет его, считает новое, сравнивает и возвращает на место старое значение (если оно не совпало с подсчитанным - выводится ошибка с указанием места происшествия). Если чексуммы надо выключить - программа меняет значение версии чексумм на 0 и ничего не делает с файлами таблиц
При проверке контрольных сумм сканируется каждый файл в кластере.При
включении контрольных сумм каждый файл в кластере перезаписывается.
Отключение контрольных сумм обновляет только файл pg_control
.
Параметры
-
-f
filenode
--filenode=
filenode
Проверить контрольнные суммы только для отношения с указанным
filenode
-
-D
directory
--pgdata=
directory
Указывает каталог, в котором хранится кластер базы данных. (env: PGDATA=/tmp/qhb-data/)
Доступны следующие параметры командной строки:
Флаги (FLAGS)
-
-c
--check
Проверяет контрольные суммы. Это режим по умолчанию, если ничего не указано.
-
-d
--disable
Отключить контрольные суммы. -
-e
--enable
Включить контрольные суммы. -
-h
--help
Вывести справочную информацию.
-
-N
--no-sync
Не ждать, пока изменения будут безопасно записаны на диск. По умолчанию
qhb_checksums
будет ожидать безопасной записи всех файлов на диск. Этот параметр позволяетqhb_checksums
завершаться без ожидания, что быстрее, но в случае сбоя операционной системы может привести к повреждению обновленного каталога данных. Как правило, этот параметр полезен для тестирования, но его не следует использовать в продакшене. -
-P
--progress
Выводить сообщения о прогрессе выполнения. Сообщения будут выводиться при проверке или включении контрольных сумм.
-
-V
--version
Показать информацию о версии и выйти
-
-v
--verbose
Выводить подробные сообщения. Уровень отладки по умолчанию: Warn
Окружение
PGDATA
- Указывает каталог, в котором хранится кластер базы данных; может
быть переопределено с помощью параметра
-D
.
PG_COLOR
- Указывает, использовать ли цвета в диагностических сообщениях. Возможные значения always, auto, never .
Примечания
Включение контрольных сумм в большом кластере может занять много времени. Во время этой операции кластер или другие программы, выполняющие запись в каталог данных, не должны запускаться, иначе может произойти потеря данных.
При использовании репликации, которая выполняется путем неспосредственного копирования блоков отношений на уровне файлов отношений (например, qhb_rewind), включение или отключение контрольных сумм может привести к повреждению страниц в виде расхождения контрольных сумм, если эта операция не будет выполнена согласованно на всех узлах. Поэтому при включении или отключении контрольных сумм рекомендуется остановить все кластеры, для того чтобы переключить их в другой режим. Удаление всех ведомых серверов, выполнение операции на основном сервере и создание ведомых серверов заново, также является безопасным методом.
Если qhb_checksums
прерывается или уничтожается при включении или
отключении контрольных сумм, конфигурация контрольной суммы данных
кластера остается неизменной, и qhb_checksums
можно повторно запустить
для выполнения той же операции.
Обработка ошибок
Ошибка Possibly encrypted block, проявляется либо при шифровке файла, либо при очень серьёзном повреждении файла, подразумевая под собой MismatchBlockChecksum
.
Примеры
-
qhb_checksums -e
первый запуск, включение контрольных сумм, в конце выводится статистика с количеством обработанных блоков и файлов, любая ошибка приводит к остановке и выходу с кодом 1. -
qhb_checksums -с
проверка уже включённых контрольных сумм, отношение к статистике и ошибкам такое же, как у--enable
-
qhb_checksums -d
последний запуск программы, выключает контрольные суммы, несмотря на любые ошибки, кромеPermission denied
на/global/pg_control
--enable
, --check
и --disable
- три главных аргумента, к которым могут быть применены следующие флаги:
-
--verbose
для вывода отладочной информации -
--no-sync
для отключения сброса изменений на диск -
--progress
для отображения хода выполнения