@vikholodov

Как перенести большую базу с одного сервера на другой?

Нужно переехать с одного VDS на другой, облачный VDS. Имеем наглухо забитый ssd с базой данных под 60 гигабайт (свободного места на диске на данный момент 6 гигабайт). Я обычно делал дамп в json через Django и потом просто импортировал, но опыта с такими большими базами нету. Может как-то можно подключиться с одного сервера на другой и скопировать базу?
В общем, знающие люди, подскажите как переносить большие бд
  • Вопрос задан
  • 470 просмотров
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Настраиваете потоковую репликацию, через pg_basebackup снимаете копию, запускаете как реплику. Когда догонит ведующую базу выключаете мастер и повышаете реплику до нового мастера.
Даунтайм минута вне зависимости от объёма данных. Ну может ещё минута если понадобится рестарт мастера из-за смены wal_level, listen_addresses или max_wal_senders

https://wiki.postgresql.org/wiki/Streaming_Replication
Ответ написан
Комментировать
neatsoft
@neatsoft
Life is too short for bad software
Если даунтайм не принципиален, то нужно остановить базу, и воспользоваться одним из следующих вариантов:
1. Скопировать файлы с базой на новый сервер с помощью rsync, и заменить ими имеющиеся. На новом сервере должна быть установлена точно такая же версия Postgres.
2. Направить вывод pg_dump на старом сервере на вход pg_restore на новом через ssh:
pg_dump -Fc db_name | ssh user@new_server "pg_restore -d db_name"


В противном случае лучше нанять для этой операции опытного DBA.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы