Управление архивами резервных копий
В текущей версии утилитаcopywala была переименована. При ручном вызове необходимо использовать новое имя исполняемого файла – pangolin-copywala.
CWL-архив
Просмотр информации о CWL-архиве
Описание сценария
Просмотр информации об архиве CWL.
Последовательность выполнения
Инициируйте просмотр информации о CWL-архиве через CLI компонента Copywala командой copywala cwl info <путь к cwl-архиву>.
Результат
В результате выполнения команды будет выведена следующая информация об архиве:
version: CWLv1
footer_offset: 108582639691
footer_size: 1557401
part_payload_size: 134217728
parts_num: 809
backup_info:
backup_id: 019777c6-2bac-7227-8cb8-af912d06f0e1
agent_id: 01977923-7076-7005-a31e-b83c631cc48d
backup_strategy: pbr.policy.backup.strategy.full
archive_size: 108592585707
hostname: srv-48-53
start_time: 2025-06-16T11:06:05+03:00
finish_time: 2025-06-16T11:07:52+03:00
pangolin_info:
pangolin_version: Platform V Pangolin 6.4.2
pg_data_path: /pgdata/06/data
system_id: 7486474568836462913
start_lsn: 184834588712
end_lsn: 185903934627
start_lsn_wal_file_name: 000000010000002B00000009
wal_files_number: 10
wal_file_size: 16777216
backup_label: ""
tablespace_map:
"16718": /pgdata/06/tablespaces/Tbl_t
verify_page_checksums: true
max_allowed_page_verification_failures: 0
delta_backup_info: null
wal_archiving_info: null
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
- Отсутствуют права на чтение файла.
- Указано неверное имя файла.
- Файл поврежден.
Валидация контрольных сумм файлов и метаданных CWL-архива
Описание сценария
Для подтверждения корректности резервных копий осуществляется комплексная проверка структуры архива, включая верификацию как контрольных сумм файлов, так и внутренней служебной информации – заголовка, завершающего блока и метаданных каждого парта.
Алгоритм расчета контрольных сумм файлов и метаданных архива настраивается путем добавления или изменения поля 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]"
Списки и инвентаризация
Просмотр информации о созданных резервных копиях
Описание сценария
Просмотр информации о созданных резервных копиях.
Последовательность выполнения
Инициируйте просмотр информации о резервных копиях через CLI компонента Copywala с помощью одной из команд:
copywala backups history [--detail]copywala backups show
Используйте:
copywala backups history [--detail]– для проверки доступных резервных копий и их готовности к восстановлению;copywala backups show– для просмотра параметров уже созданных резервных копий.
Результат
В результате выполнения команды будет выведена следующая информация:
-
при использовании
copywala backups history(пример вывода):copywala backups history
+----------------------+------------+---------------+-----------------------+---------------------+
| ID | HOSTNAME | LOCATION URI | INVENTORY STATUS | INVENTORY TIME |
+----------------------+------------+---------------+-----------------------+---------------------+
| <Идентификатор РК_1> | <HOSTNAME> | <URI> | success | 2026-02-04 09:44:50 |
| <Идентификатор РК_2> | <HOSTNAME> | <URI> | failed | 2026-02-04 09:44:56 |
| <Идентификатор РК_3> | <HOSTNAME> | <URI> | success | 2026-02-04 09:45:01 |
+----------------------+------------+---------------+-----------------------+---------------------+Поле Описание Пример значения IDУникальный идентификатор РК 019715e5-a1ec-70c4-9a31-753362d26f75HOSTNAMEИмя хоста агентского приложения, на котором был запущен процесс создания РК srv-48-53LOCATION URIПолный путь к РК: тип хранилища, хост, путь, имя файла s2://srv-48-53:29500/2025-05-28-10-57_019715e5-a1ec-70c4-9a31-753362d26f75_full_0000000100000018000000A7.cwlINVENTORY STATUSСтатус РК по результату инвентаризации) - success– успешная инвентаризация РК;
-failed– инвентаризация неуспешна (например, возникновение ошибки во время проверки или выявлена проблема с файлами РК)INVENTORY TIMEВремя выполнения инвентаризации для данной РК 2026-04-03 22:05:11Флаг--detailПри использовании флага
--detail, будет выведена более подробная информация о резервных копиях (пример вывода):copywala backups history --detail
Id: 019d54bc-0420-7db6-9c3b-db08dfaf5f4a
Location uri: local-fs://srv-48-98/home/postgres/backups/test_1_019d54bb-0d7c-753c-8ba1-6fc154f0e04e/backups/2026-04-03-22-05_019d54bc-0420-7db6-9c3b-db08dfaf5f4a_full_000000010000000000000020.cwl
Strategy: pbr.policy.backup.strategy.full
Archive size: 106733568
Hostname: srv-48-98
Started at: 2026-04-03 22:05:01 +0300 MSK
Finished at: 2026-04-03 22:05:12 +0300 MSK
Inventory status: success
Inventory time: 2026-04-03 22:05:11
Id: 019d54bd-74ba-7b49-bf17-90878eb7bd97
Location uri: local-fs://srv-48-98/home/postgres/backups/test_1_019d54bb-0d7c-753c-8ba1-6fc154f0e04e/backups/2026-04-03-22-06_019d54bd-74ba-7b49-bf17-90878eb7bd97_full_000000010000000000000022.cwl
Strategy: pbr.policy.backup.strategy.full
Archive size: 106708992
Hostname: srv-48-98
Started at: 2026-04-03 22:06:36 +0300 MSK
Finished at: 2026-04-03 22:06:37 +0300 MSK
Inventory status: failed
Inventory time: 2026-04-03 22:06:37
Id: 019d54c7-ffc6-74f7-bd33-213c00ccddf8
Location uri: local-fs://srv-48-98/home/postgres/backups/test_1_019d54bb-0d7c-753c-8ba1-6fc154f0e04e/backups/2026-04-03-22-18_019d54c7-ffc6-74f7-bd33-213c00ccddf8_full_000000010000000000000026.cwl
Strategy: pbr.policy.backup.strategy.full
Archive size: 106713088
Hostname: srv-48-98
Started at: 2026-04-03 22:18:07 +0300 MSK
Finished at: 2026-04-03 22:18:08 +0300 MSK
Inventory status: success
Inventory time: 2026-04-03 22:18:07 -
при использовании
copywala backups show(пример вывода):+------------+--------------+----------------------+---------------+----------+------+--------+-------+----------+------------+------------+---------+
| HOSTNAME | VERSION | BACKUP ID | FINISH TIME | STRATEGY | TIME | DATA | WAL | COMPRESS | START LSN | END LSN | STATUS |
+------------+--------------+----------------------+---------------+----------+------+--------+-------+----------+------------+------------+---------+
| <HOSTNAME> | <DB_VERSION> | <Идентификатор РК_1> | <FINISH_TIME> | full | 11s | 326MiB | 16MiB | 3.36 | 0/20000028 | 0/20012A50 | success |
| <HOSTNAME> | <DB_VERSION> | <Идентификатор РК_2> | <FINISH_TIME> | full | 1s | 326MiB | 12MiB | 3.37 | 0/22000028 | 0/2200A4A8 | success |
| <HOSTNAME> | <DB_VERSION> | <Идентификатор РК_3> | <FINISH_TIME> | full | 1s | 326MiB | 128MiB| 3.37 | 0/26000028 | 0/2600AA10 | success |
+------------+--------------+----------------------+---------------+----------+------+--------+-------+----------+------------+------------+---------+Поле Описание Пример значения HOSTNAMEИмя хоста агентского приложения, на котором был запущен процесс создания РК srv-48-53VERSIONВерсия СУБД для которой создана РК Platform V Pangolin DB 6.7.0BACKUP IDУникальный идентификатор РК 019715e5-a1ec-70c4-9a31-753362d26f75FINISH TIMEВремя завершения операции РК 2026-04-03T22:05:12+03:00STRATEGYСтратегия резервного копирования full– полная копия;delta– дельта-копияTIMEДлительность выполнения операции РК 11sDATAОбъем скопированных данных (без учета WAL-файлов) 326MiBWALОбъем скопированных WAL-файлов 128MiBCOMPRESSСтепень сжатия данных 3.36START LSNНачальный LSN 0/20000028END LSNКонечный LSN 0/20012A50STATUSСтатус РК success– РК успешно выполнена;failed– при снятии РК возникли ошибки
Исключительные сценарии
Не удалось установить подключение к целевой базе данных.
Вывод списка резервных копий из хранилища
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Команда для просмотра списка существующих резервных копий текущего экземпляра базы данных или указанного экземпляра по имени (instance_name).
Последовательность выполнения
Инициируйте просмотр списка резервных копий текущего экземпляра БД через CLI компонента Copywala командой copywala storage backups [instance_name].
Результат
При выполнении команды без указания имени экземпляра БД будет выведен список существующих резервных копий текущего экземпляра базы данных:
$ copywala storage backups
+---+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| # | BACKUP URI |
+---+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 | local-fs:///backups/testdb_0198a21b-a76f-7c06-b071-9c35cc9fc181/backups/2025-09-04-14-32_0199147f-eced-7324-9eed-804e768e7803_archive_00000001000000000000000A.cwl |
| 2 | local-fs:///backups/testdb_0198a21b-a76f-7c06-b071-9c35cc9fc181/backups/2025-09-04-16-40_019914f5-33a5-7622-ae28-c9acff65792c_full_00000001000000000000000E.cwl |
| 3 | local-fs:///backups/testdb_0198a21b-a76f-7c06-b071-9c35cc9fc181/backups/2025-09-04-16-44_019914f8-c01a-7bcb-98e6-793a0a0109d1_full_000000010000000000000010.cwl |
+---+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Если имя экземпляра указано, то будет выведен список резервных копий конкретного экземпляра:
$ copywala storage backups testdb_0198a21b-a76f-7c06-b071-9c35cc9fc181
+---+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| # | BACKUP URI |
+---+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 | local-fs:///backups/testdb_0198a21b-a76f-7c06-b071-9c35cc9fc181/backups/2025-09-04-14-32_0199147f-eced-7324-9eed-804e768e7803_archive_00000001000000000000000A.cwl |
| 2 | local-fs:///backups/testdb_0198a21b-a76f-7c06-b071-9c35cc9fc181/backups/2025-09-04-16-40_019914f5-33a5-7622-ae28-c9acff65792c_full_00000001000000000000000E.cwl |
| 3 | local-fs:///backups/testdb_0198a21b-a76f-7c06-b071-9c35cc9fc181/backups/2025-09-04-16-44_019914f8-c01a-7bcb-98e6-793a0a0109d1_full_000000010000000000000010.cwl |
+---+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Исключительные сценарии
-
Не удалось установить подключение к удаленному хранилищу резервных копий.
-
Не удалось получить доступ к локальному хранилищу резервных копий.
-
Введено наименование экземпляра, у которого нет резервных копий в хранилище:
$ copywala storage backups unknown-instance-name
2025-09-08 09:34:51.412 ERR storage backups failed err="list local backups: read dir: open /backups/unknown-instance-name/backups: no such file or directory"
Просмотр информации о задачах на создание РК
Описание сценария
Просмотр пользователем всех доступных ему задач создания резервной копии.
Последовательность выполнения
Запросите список задач через CLI компонента Copywala командой copywala backup-tasks show [--detail].
Результат
В результате выполнения команды будет выведено сообщение со списком задач на создание резервных копий, доступных пользователю в системе (пример вывода):
copywala backup-tasks show
+--------------------------+------------+------------------------------------------------+-----------+----------+
| ID | HOSTNAME | DESTINATION URI | STATUS | STRATEGY |
+--------------------------+------------+------------------------------------------------+-----------+----------+
| <Идентификатор задачи_1> | <HOSTNAME> | local-fs://<HOSTNAME>/<path-to-backup-storage> | completed | full |
| <Идентификатор задачи_2> | <HOSTNAME> | s3://<HOSTNAME>.host/<bucket-name> | failed | full |
| <Идентификатор задачи_3> | <HOSTNAME> | s2://<HOSTNAME>:<PORT>/<path-to-backup> | completed | full |
+--------------------------+------------+------------------------------------------------+-----------+----------+
| Поле | Описание | Пример значения |
|---|---|---|
ID | Уникальный идентификатор задачи | 019d67ec-942d-7d36-b8f9-aec8036b8f55 |
HOSTNAME | Имя хоста агентского приложения, на котором была запущена задача | srv-48-98 |
DESTINATION URI | Полный путь к хранилищу РК | local-fs://srv-48-98/home/postgres/backups/TEST_019d67c9-6432-7523-bb64-d5df29d9914b/backups |
STATUS | Статус выполнения задачи | - started – запущена и находится процессе выполнения;- completed – выполнена;– canceled – отменена;- created – создана, но не запущена;- failed – завершена с ошибкой. |
STRATEGY | Стратегия резервного копирования | full |
--detailПри использовании флага--detail, будет выведена более подробная информация о задачах на создание РК (пример вывода):
copywala backup-tasks show --detail
Id: 550e8400-e29b-41d4-a716-446655440000
Backup id: 660f9500-f39c-52e5-b827-557766551111
Agent id: 770fa600-049d-63f6-c938-668877662222
Policy id: 80fb700-159e-74g7-d049-779988773333
Source uri: postgresql://user:pass@localhost:5432/mydb
Destination uri: s3://backup-bucket/postgres-prod/backup-2025-01-20/
Status: SUCCESS
Processed data size: 15728640
Total data size: 15728640
Full database size: 15728640
Wal size: 67108864
Strategy: pbr.policy.backup.strategy.full
Started at: 2025-01-20 10:30:15 +0000 UTC
Finished at: 2025-01-20 10:35:42 +0000 UTC
Исключительные сценарии
Не удалось установить подключение к целевой базе данных.
Инвентаризация резервных копий в указанных хранилищах
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Сценарий инвентаризации резервных копий предназначен для регулярного анализа состояния архивированных данных и проверки их готовности к использованию. Главная задача сценария — сверить наличие резервных копий в физическом хранилище с записями о них в базе данных, чтобы подтвердить их целостность и доступность.
Последовательность выполнения
Выполните инвентаризацию резервных копий через CLI компонента Copywala командой copywala backups inventory [--local | локальное хранилище][--s2 | хранилище s2] [--s3 | хранилище s3][--detail | детальный вывод].
Результат
В результате выполнения команды будет выведено:
Inventory Summary:
Total backups checked: <количество проверенных резервных копий>
Successful: <количество успешных>
Failed: <количество проваленных>
Failed Backups:
--------------------------------------------------------------------------------
Backup ID: <Идентификатор РК_1>
Location URI: <local-fs://HOSTNAME/path-to-backup>
Inventory Time: <YYYY-MM-DD HH:MM:SS>
Error: <error message>
--------------------------------------------------------------------------------
...
| Поле | Описание | Пример значения |
|---|---|---|
Backup ID | Уникальный идентификатор РК | 019715e5-a1ec-70c4-9a31-753362d26f75 |
Location URI | Полный путь к РК: тип хранилища, хост, путь, имя файла | s2://srv-48-53:29500/2025-05-28-10-57_019715e5-a1ec-70c4-9a31-753362d26f75_full_0000000100000018000000A7.cwl |
Inventory Time | Время выполнения инвентаризации для данной РК | 2026-04-10 09:20:37 |
Error | Описание ошибки | open /home/postgres/backups/TEST_019d67c9-6432-7523-bb64-d5df29d9914b/backups/2026-04-10-09-20_019d760c-2240-7a99-912e-055be3099933_full_000000010000000700000031.cwl: no such file or directory |
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
- Недостаточно прав для проведения инвентаризации.
- Не удалось установить подключение к целевой базе данных.
Политика хранения резервной копии
Создание нового правила для резервного копирования
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Команда добавляет указанную резервную копию в перечень исключений из политики хранения, действующей на директорию, в которой расположена данная копия на установленный промежуток времени. Таким образом, если в стандартных условиях данная РК удаляется ввиду несоответствия условиям политики, эта команда временно блокирует ее удаление, обеспечивая защиту копии от дальнейших чисток. Все родительские копии, от которых зависит данная закрепленная копия, также будут закреплены. При этом для выбранной резервной дельта-копии дочерние дельта копии не получат статус закрепления.
Последовательность выполнения
Инициируйте создание нового правила для резервного копирования через CLI компонента Copywala командой copywala retention backup set [retention-protection | временной интервал защиты РК] <archive uri>.
Пример формата строки, задающей временной интервал защиты:
1d- 1 день;20h- 20 часов.
Для снятия защиты резервной копии и возможности ее удаления передайте флаг --retention-protection=0.
Результат
По завершении выполнения команды выводится уведомление о том, что правило успешно установлено:
backup is protected until <date>
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
- Не удалось установить подключение к целевой базе данных.
- Неверный формат строки, определяющей временной интервал защиты.
Удаление резервных копий, не соответствующих политике хранения
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Функциональность реализована только для резервных копий, расположенных в локальном хранилище.
Сценарий описывает процесс удаления резервных копий, которые больше не соответствуют установленным правилам и срокам хранения. Этот процесс необходим для поддержания порядка в хранилище данных, освобождения места и исключения устаревших сведений из дальнейшей обработки.
Удаление РК выполняется через CLI компонента Copywala командой copywala retention clean-outdated-backups. Алгоритм работы команды:
-
Извлекаются значения параметров:
backup_destination_uriиз конфигурационного файлаcopywala.yaml;instance_nameиз файла/etc/pangolin-copywala/pbr.agent.id(или из переопределенного файла, если он был изменен).
-
По этим значениям в БД
pbra_db(таблицеpbr_retention_policies) определяется политика хранения для данного хоста. -
Проверяется таблица резервных копий, из которой выбираются копии, находящиеся в указанной директории.
-
На основе метаданных РК, команда удаляет РК, не подходящие под политику хранения.
Последовательность выполнения
Инициируйте удаление резервных копий через CLI компонента Copywala командой copywala retention clean-outdated-backups.
Результат
В результате выполнения команды будут удалены резервные копии, которые не соответствуют заданной политике хранения, и появится сообщение:
successfully cleaned outdated backups
Если политика хранения не задана или задана, но по ней нет резервных копий для удаления, выводится сообщение:
nothing to clean for given uri <путь к очищаемой папке>
Исключительные сценарии
- Нет прав для удаления РК.
- Не удалось установить подключение к целевой базе данных.
- Если информация о резервной копии присутствует в базе данных и по политике такая копия подлежит удалению, но сама физическая копия в хранилище отсутствует, то возникнет ошибка.
- Если ранее для папки с резервными копиями не была назначена никакая политика хранения, ни одна резервная копия, расположенная в этой директории, не будет удалена. Вместо этого будет выдано информационное сообщение о том, что политика для данной папки не найдена.
Вывод списка политик хранения РК
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Просмотр пользователем списка политик хранения резервных копий в локальной базе данных.
Последовательность выполнения
Запросите список политик хранения резервных копий через CLI компонента Copywala командой: copywala retention policy show.
Результат
В результате выполнения команды будет выведено сообщение, содержащее действующую политику хранения резервных копий конкретно для выбранного экземпляра БД:
| id | location uri | max-full-backups | retention-period |
|--------------------------------------|-------------------------------------------------------------------------|------------------|--------------------|
| 019715e5-a1ec-70c4-9a31-753362d26f75 | local-fs:///path/to/backups/dbmain_01988a12-06bf-7f0b-87f8-e290972fe614 | 4 | 8 |
Исключительные сценарии
- Не удалось установить подключение к целевой базе данных.
- Не удалось загрузить конфигурационный файл.
Настройка политики хранения для директории РК согласно настройкам конфигурационного файла
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Сценарий настройки политики хранения для директории резервной копии согласно настройкам конфигурационного файла применяется для автоматизации процесса определения правил хранения резервных копий в определенной папке. Инструмент позволяет задать сроки хранения и условия удаления резервных копий исходя из настроенных ранее параметров в файле конфигурации.
Используемая команда: copywala retention policy set.
Функциональность реализована только для резервных копий, которые сохранены в локальное хранилище.
Политика хранения поддерживает два основных режима:
-
Хранить фиксированное число полных резервных копий:
Флаг:
--max-full-backups=N, где N – число полных РК, которые необходимо хранить.Используется для ограничения общего количества полных резервных копий. Полные копии выбираются по принципу новизны: сохраняются самые свежие. Вместе с полными копиями сохраняются все дочерние дельта-копии.
-
Хранить резервные копии, позволяющие восстанавливать данные за установленное количество дней:
Флаг:
--retention-period=Kd, где K – количество дней, за которые необходимо обеспечить возможность восстановления данных.Применяется для обеспечения возможности полного восстановления на любой момент времени в пределах указанного периода. Все резервные копии, чьи поля завершения (
finish_time) попадают в указанный интервал, остаются неприкосновенными, даже если начало (start_time) выходит за пределы окна. Если в указанное временное окно попадает дельта-копия, чья родительская РК (полная или дельта) не попала в это окно, родительская копия все равно остается защищенной от удаления.
Эти механизмы работают совместно: если политика ограничивает общее количество полных копий (max-full-backups), но некоторые из них входят в диапазон удерживаемых по критерию временных окон (retention-period), то приоритет отдается временной политике, и соответствующие копии останутся, даже если превышают лимит полных копий.
Например, если имеется три резервные копии, одна из которых входит в окно восстановления (retention-period), а максимальная разрешенная глубина хранения полных копий равна одной (max-full-backups=1), то сохранится лишь та копия, которая находится в временном интервале восстановления, а остальные две будут удалены.
Важно понимать:
-
Все резервные копии старше указанного числа дней (
retention-period) автоматически удаляются. -
Из оставшихся резервных копий сохраняется только указанное количество полных резервных копий (
max-full-backups):- Если число полных резервных копий меньше либо равно количеству, указанному в
max-full-backups, ничего удалено не будет. - Если полное количество резервных копий больше установленного ограничения (
max-full-backups), полные РК (самые старые) будут удалены.
- Если число полных резервных копий меньше либо равно количеству, указанному в
Если один из флагов в команде отсутствует, его значение принимается равным нулю, и соответствующее значение в политике (при условии, что политика уже была создана ранее) будет обновлено. Например, после вызова команды с параметром --retention-period=0, параметр максимума дней хранения сбросится до нуля, и резервные копии, сделанные за последние шесть дней, перестанут считаться нужными и будут удалены при следующем сеансе очистки.
Пример такой команды:
copywala retention policy set --max-full-backups=3
Политика задается папке, куда помещаются резервные копии. Из конфигурационного файла извлекается значение backup_destination_uri, которое объединяется c instance_name, хранящимся в специальном файле, формируя путь вида <backup_destination_uri/instance_name>. Именно эта папка получает соответствующую политику хранения. Сами политики размещаются в локальной базе данных pbra_db в таблице pbr_retention_policies.
Последовательность выполнения
- Настройте в конфигурационном файле
copywala.yamlрежим политики хранения. - Инициируйте настройку политики хранения через CLI компонента Copywala командой
copywala retention policy set [--max-full-backups | максимальное количество РК][--retention-period | максимальный интервал].
Результат
По завершении выполнения команды будет выведено уведомление о том, что новая политика успешно применена.
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
- Не удалось установить подключение к целевой базе данных.
- Неверный формат параметров политики.