Восстановление данных из резервной копии на момент времени (PITR)
Технология Point-in-Time Recovery (PITR) позволяет восстановить состояние базы данных на определенный момент времени посредством полной резервной копии и журнала транзакций (WAL-файлов).
Шаги сценария
- Пользователь определяет целевую точку восстановления (LSN, время, контрольная точка или транзакция).
- Пользователь инициирует восстановление резервной копии через CLI компонента copywala командой
copywala restore <archive uri or path>илиcopywala restore latest. - copywala запрашивает в хранилище указанный CWL-архив и распаковывает файлы базы данных в заданную директорию.
- Продукт выполнят команду, в CLI выводится сообщение с прогрессом и результатом выполнения восстановления данных из резервной копии в заданную директорию.
- Пользователь настраивает в конфигурационном файле
postgresql.confкоманду для восстановления WAL-файлов (restore_command) и параметр целевой точки во времени, до которой требуется произвести восстановление (recovery_target,recovery_target_lsn,recovery_target_name,recovery_target_time,recovery_target_xid). - Пользователь создает в директории восстановленной резервной копии СУБД файл
recovery.signalдля переключения сервера в режим восстановления. - Пользователь запускает сервер базы данных, указывая в качестве директории данных (
PGDATA) путь, куда были восстановлены файлы из резервной копии в шаге 3. - При запуске сервер переходит в режим восстановления и начинает запрашивать необходимые WAL-файлы через
restore_command, который вызываетcopywala restore-wal %f %p. - copywala запрашивает нужные WAL-файлы в хранилище (определяется параметром
wal_destination_uri) и сохраняет их в директорию данных базы данных. - Сервер СУБД применяет WAL-файлы последовательно до достижения заданной точки восстановления.
- После завершения восстановления выводится сообщение об успешном восстановлении базы данных до заданной точки во времени.
Исключительные сценарии
- Ошибка запуска сервера. Проанализируйте содержимое лог-файлов.
- Отсутствие необходимых WAL-файлов для восстановления до заданной точки. Удостоверьтесь в корректности выбранного момента времени (или LSN) и повторите операцию восстановления.