29.2. Контрольные суммы данных #

29.2.1. Включение контрольных сумм в остановленном кластере

По умолчанию страницы данных защищены контрольными суммами, но при необходимости контрольные суммы можно отключить для всего кластера. Если контрольные суммы включены, каждая страница данных будет содержать контрольную сумму, расчитываемую при записи и проверяемую при каждом чтении страницы. Контрольными суммами защищены только страницы данных, но не внутренние структуры данных и временные файлы.

Контрольные суммы можно отключить при инициализации кластера с помощью initdb. Также контрольные суммы можно включить или отключить позднее, в остановленном кластере. Включить или отключить контрольные суммы данных можно на уровне всего кластера, но не для отдельной базы данных или таблицы.

Текущее состояние контрольных сумм в кластере можно узнать, выполнив команду SHOW data_checksums, которая возвращает значение неизменяемой конфигурационной переменной data_checksums.

При попытке восстановить страницы после повреждения иногда нужно обойти защиту, обеспечиваемую контрольными суммами. Для этого можно временно установить параметр конфигурации ignore_checksum_failure.

29.2.1. Включение контрольных сумм в остановленном кластере #

Чтобы проверить, включить или отключить контрольные суммы данных в остановленном кластере, можно использовать утилиту pg_checksums.