Это репетиция восстановления, а не инструкция для перезаписи production. До копии подтвердите СУБД и версию, владельца данных, срок хранения, шифрование и свободное место. Не проверяйте копию поверх production.
Создайте копию и зафиксируйте её параметры
- Используйте задокументированный способ копирования и согласованный снимок. Запишите источник, версию, время и часовой пояс, размер, владельца ключа шифрования и контрольную сумму.
- Храните зашифрованную копию отдельно от production-сервера. Не оставляйте секреты в истории shell, тикетах и скриншотах; проверьте доступность ключа уполномоченным.
Восстановите копию в изолированную среду
- Создайте пустую БД нужной основной версии с совместимыми ролями и расширениями. Восстановите подходящей утилитой PostgreSQL; не направляйте команду на production.
- Проверьте ожидаемые таблицы, число критичных записей, ограничения, запуск приложения и безопасный сценарий чтения. Зафиксируйте время и расхождения до одобрения миграции.
Пример и ожидаемый результат
- Выберите инструмент по формату: plain SQL восстанавливают через
psql, custom/tar — черезpg_restore(содержимое архива покажетpg_restore --list backup.dump). Восстанавливайте в одноразовую изолированную БД, отключив workers и внешние интеграции; используйте только тестовые секреты. Не проводите упражнение в production. - Запишите код завершения, время, ожидаемое число таблиц и проверки агрегированных данных. При ошибке или расхождении остановитесь и проверьте ошибку, расширения и роли на тестовом узле до миграции.
pg_dumpкопирует одну БД; глобальным ролям нужна отдельная копия.