Миграция PostgreSQL между серверами

Миграция · 07.02.2025
Миграция PostgreSQL между серверами

pg_dump: экспорт базы данных

# Дамп одной базы в custom формат (сжатый, параллельный restore)
pg_dump -U postgres -Fc -d mydb > mydb.dump

# Дамп в SQL-формате (читаемый)
pg_dump -U postgres -d mydb > mydb.sql

# Только схема (без данных)
pg_dump -U postgres --schema-only -d mydb > schema.sql

pg_restore: импорт на новом сервере

# Создаём базу на новом сервере
createdb -U postgres mydb

# Восстановление из custom формата
pg_restore -U postgres -d mydb -j 4 mydb.dump
# -j 4 — использовать 4 процесса параллельно
💡 Custom формат (Fc) в 3–10 раз быстрее восстанавливается чем SQL, и поддерживает параллельный restore с -j.

Быстрая передача через pipe

# Без сохранения дампа на диске
pg_dump -U postgres -Fc mydb |   ssh root@NEW_SERVER "pg_restore -U postgres -d mydb"

Проверка после миграции

-- Сравниваем количество строк
SELECT schemaname, tablename, n_live_tup
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;
⚠️ Убедитесь что версия PostgreSQL на новом сервере >= версии на старом. Откат на более старую версию не поддерживается.
← Назад в базу знаний Задать вопрос поддержке