Как перенести базу данных postgres на другой сервер

Я планирую перенести базу данных Postgres размером ~100 ГБ на новый сервер. Можно ли просто скопировать каталоги данных на новый сервер и запустить там базу данных, или мне нужно сделать дамп на первом сервере, а затем восстановить на втором?

Раздел базы данных первого сервера составляет около 120 ГБ, второй - 1 ТБ. На обоих серверах установлена ​​одна и та же версия postgres в Debian, и они подключены через 1 ГБ Ethernet. Есть ли различия между этими двумя методами для передачи базы данных? Какой самый быстрый (с наименьшим временем простоя) способ передачи данных на новый сервер?

3 ответа

Решение

Пока они имеют одинаковую архитектуру, тогда вы должны нормально выключить и затем выполнить повторную синхронизацию файлов.

Вы также можете рассмотреть возможность создания дампа и импорта базы данных. Вы можете настроить дамп для перехода на новый раздел (возможно, через монтирование NFS).

В противном случае, решение @Matt хорошо.

Эта миграция, вероятно, уже завершена, но я подумала, что могу вмешаться в любом случае.

Подготовка и настройка займет больше времени, но вы можете перенести данные, настроив репликацию между двумя серверами. Вы можете использовать bucardo, londiste или slony. Это минимизирует время простоя по сравнению с rsync. По моему опыту, для rsync может потребоваться несколько минут для сравнения блоков диска между исходным и целевым хостами, когда размер файлов rsync превышает 10 ГБ.

Другие вопросы по тегам