PostgreSQL pg_dump: создать и восстановить дамп
Для резервной копии PostgreSQL удобно использовать custom-формат: pg_dump -Fc -d app_db -f app_db.dump. Такой файл восстанавливают через pg_restore; сначала проверьте архив и восстанавливайте в отдельную базу, чтобы не перезаписать рабочие данные.
Создать архив и проверить его содержимое
pg_dump -Fc -d app_db -f app_db.dump
pg_restore --list app_db.dump | head -20Команда использует настройки подключения PostgreSQL из окружения или .pgpass. Не передавайте пароль прямо в аргументах командной строки.
Восстановить в новую базу
createdb app_db_restore
pg_restore --dbname=app_db_restore --no-owner --no-privileges app_db.dumpФлаги --no-owner и --no-privileges полезны, если на целевом сервере нет исходных ролей. Если нужно восстановить владельцев и grants, создайте роли заранее и уберите эти параметры.
Команда | Формат |
|---|---|
| Custom archive, восстанавливается |
| Обычный SQL-текст, восстанавливается |
| Показать содержимое custom-архива |
Как восстановить plain SQL дамп?
Подключите его через psql -d app_db_restore -f app_db.sql. Формат -Fp — текстовый SQL, поэтому pg_restore для него не подходит.
Как понять, что восстановление прошло успешно?
Проверьте код завершения, список таблиц, ключевые количества записей и работу приложения на тестовом окружении.