Валидация контрольных сумм файлов и метаданных CWL-архива
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Для подтверждения корректности резервных копий осуществляется комплексная проверка структуры архива, включая верификацию как контрольных сумм файлов, так и внутренней служебной информации – заголовка, завершающего блока и метаданных каждого парта.
Алгоритм расчета контрольных сумм файлов и метаданных архива настраивается путем добавления или изменения поля archive_settings.checksum_algorithm в конфигурационном файле copywala.yaml:
- Значение по умолчанию:
CRC32. - Возможные значения:
CRC32,SHA256,DISABLED.
Чтобы отключить контрольные суммы, укажите явно: DISABLED.
Контролируется следующее:
- Целостность метаданных и файлов архива — если ранее был выполнен расчет контрольных сумм при создании резервной копии.
- Целостность отдельных страниц — если параметр
restore_policy.verify_page_checksumsустановлен в значениеtrue.
Предусловие
Включена опция проверки целостности метаданных (поле archive_settings.checksum_algorithm).
Последовательность выполнения
Чтобы удостовериться в отсутствии повреждений сформированного архива резервной копии, запустите процедуру проверки контрольных сумм CWL-архива через CLI copywala командой copywala verify <путь к файлу>.
Команда проверяет только контрольные суммы указанного архива резервной копии, а не всей цепочки резервных копий.
Результат
В случае успешного результата будет выведено:
$ copywala verify backups/db9_01999b4f-cc99-755e-83e7-e08a12d46c85/backups/2025-09-30-19-03_01999b5d-a048-79a1-a72a-291a4d6de450_full_00000001000000000000005B.cwl
2025-10-02 17:37:42.123 INF copywala 1.2.0 (3412fdd) compiled at 2025-09-30_14:48:02
2025-10-02 17:37:42.456 INF reading will be performed sequentially package=cwl
2025-10-02 17:37:42.789 INF finished reading parts package=cwl
2025-10-02 17:37:42.834 INF Verification succeeded without errors
Исключительные сценарии
-
Файл с архивом не найден:
$ copywala verify backups/db9_01999b4f-cc99-755e-83e7-e08a12d46c85/backups/not-exists.cwl
2025-10-02 17:40:49.567 INF copywala 1.2.0 (3412fdd) compiled at 2025-09-30_14:48:02
2025-10-02 17:40:49.890 ERR failed to init verify command components err="open /home/postgres/backups/db9_01999b4f-cc99-755e-83e7-e08a12d46c85/backups/not-exists.cwl: no such file or directory" -
Неверный формат файла:
$ copywala verify backups/db9_01999b4f-cc99-755e-83e7-e08a12d46c85/backups/bad-archive.cwl
2025-10-02 17:43:09.123 INF copywala 1.2.0 (3412fdd) compiled at 2025-09-30_14:48:02
2025-10-02 17:43:09.456 ERR failed to init verify command components err="unknown cwl magic word" -
Если при создании резервной копии отключено вычисление контрольных сумм метаданных архива, то при последующей проверке целостности будет выведено:
WRN archive metadata and file checksums were not enabled during backup, thus won't be verified package=cwl -
Поврежден заголовок архива:
$ copywala verify broken.cwl
2025-10-02 18:13:56.189 INF copywala 1.2.0 (3412fdd) compiled at 2025-09-30_14:48:02
2025-10-02 18:13:56.234 ERR header checksum verification failure err="checksum verification failure: expected [196 78 53 202], actual [237 163 243 79]"
2025-10-02 18:13:56.567 ERR failed to get cwl v2 reader err="checksum verification failure: expected [196 78 53 202], actual [237 163 243 79]"
2025-10-02 18:13:56.890 ERR failed to init verify command components err="checksum verification failure: expected [196 78 53 202], actual [237 163 243 79]"