Перенести базу данных postgres на другой сервер без использования pg_dump

Я нахожусь в процессе сброса огромной базы данных, и pg_dump отнимает много времени. Я должен перенести свою базу данных на новый сервер. Я много искал в Интернете, но все предлагают один и тот же метод: выгрузить базу данных, затем передать файл и восстановить его на новом сервере. Есть ли другой способ сделать это быстро?

Я должен передать данные из версии 8.4.20 в версию 9.3.5. я могу просто перенести папку /var/lib/pgsql/data/base??

Я также посмотрел на это: Копирование базы данных PostgreSQL на другой сервер

Этот способ быстрее обычного?

Моя база данных имеет 756 000 таблиц и имеет размер 200 ГБ.

2 ответа

Решение

Согласно документации, можно сделать резервную копию файловой системы. Я не ожидал бы, что это сработает, если вы измените версии, и я не ожидал бы, что файлы будут намного меньше, чем выходные данные pg_dump. Ответ, на который вы ссылаетесь, заключается в использовании pg_dump без записи в файл, но с потоковой передачей на целевой сервер напрямую. Если этот вариант зависит от вашей сети. Вы также можете скопировать файлы на новый сервер, запустить обе версии параллельно и создать дамп непосредственно в новую версию на целевом компьютере. Какой из вариантов будет наилучшим, во многом зависит от вашего оборудования, сетевого подключения,...

Основным осложнением является переход на новый сервер. Перемещение 200 ГБ займет некоторое время. Это может быть быстрее сделать дамп на диск, а затем перенести или отправить диск на новый сервер. Это позволит избежать отправки 200 ГБ данных по сети.

Вероятно, вы можете установить 9.3 на старом сервере, а затем использовать pg_upgrade. Запуск нескольких версий PostgreSQL является обычным явлением; дайте каждому другой номер порта. Сделав это - получив одинаковую версию PostgreSQL, работающую как на старом, так и на новом сервере - становится возможным один из альтернативных методов резервного копирования и восстановления.

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