Как перенести базу данных postgres на другой сервер
Я планирую перенести базу данных Postgres размером ~100 ГБ на новый сервер. Можно ли просто скопировать каталоги данных на новый сервер и запустить там базу данных, или мне нужно сделать дамп на первом сервере, а затем восстановить на втором?
Раздел базы данных первого сервера составляет около 120 ГБ, второй - 1 ТБ. На обоих серверах установлена одна и та же версия postgres в Debian, и они подключены через 1 ГБ Ethernet. Есть ли различия между этими двумя методами для передачи базы данных? Какой самый быстрый (с наименьшим временем простоя) способ передачи данных на новый сервер?
3 ответа
Пока они имеют одинаковую архитектуру, тогда вы должны нормально выключить и затем выполнить повторную синхронизацию файлов.
Вы также можете рассмотреть возможность создания дампа и импорта базы данных. Вы можете настроить дамп для перехода на новый раздел (возможно, через монтирование NFS).
В противном случае, решение @Matt хорошо.
Эта миграция, вероятно, уже завершена, но я подумала, что могу вмешаться в любом случае.
Подготовка и настройка займет больше времени, но вы можете перенести данные, настроив репликацию между двумя серверами. Вы можете использовать bucardo, londiste или slony. Это минимизирует время простоя по сравнению с rsync. По моему опыту, для rsync может потребоваться несколько минут для сравнения блоков диска между исходным и целевым хостами, когда размер файлов rsync превышает 10 ГБ.