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.
Параметры
-
-ffilenode
--filenode=filenodeПроверить контрольнные суммы только для отношения с указанным
filenode -
-Ddirectory
--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для отображения хода выполнения