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.

Примеры

  1. qhb_checksums -e
    первый запуск, включение контрольных сумм, в конце выводится статистика с количеством обработанных блоков и файлов, любая ошибка приводит к остановке и выходу с кодом 1.

  2. qhb_checksums -с
    проверка уже включённых контрольных сумм, отношение к статистике и ошибкам такое же, как у --enable

  3. qhb_checksums -d
    последний запуск программы, выключает контрольные суммы, несмотря на любые ошибки, кроме Permission denied на /global/pg_control

--enable, --check и --disable - три главных аргумента, к которым могут быть применены следующие флаги:

  • --verbose для вывода отладочной информации

  • --no-sync для отключения сброса изменений на диск

  • --progress для отображения хода выполнения