Аврора без сервера pg_restore проблема с параллельной работой - PullRequest
0 голосов
/ 30 октября 2019

Чтобы перенести нашу большую базу данных из RDS PostgreSQL в Amazon Aurora Serverless, недавно я выгрузил всю свою базу данных с помощью команды pg_dump и пытаюсь восстановить ее с помощью команды pg_restore из точечного экземпляра EC2 (с 8vCPU и 61 ГБ ОЗУ). Моя база данных была 750 ГБ, после pg_dump, что заняло 3 часа , теперь она имеет размер 51 ГБ, что кажется нормальным, поэтому я попытался восстановить ее с помощью команды pg_restore, после примерно 25 часов мой процесс восстановления базы данных завершен. Пока все хорошо, команды, которые я использовал, приведены ниже.

pg_dump -Fc -v -h [endpoint of RDS PG instance] -U [username] [database] > [database].dump
createdb [new database name]
pg_restore -v -h [endpoint of Aurora Serverless] -U [username] -d [new database name] [database].dump 

Таким образом, чтобы ускорить процесс восстановления , я пытался установить счетчик параллельных заданий, используя флаг -j 8, я установил его, потому что мой экземпляр EC2 содержит 8 vCPU и61 ГБ ОЗУ, что достаточно для перехода на БД. Но теперь моя проблема заключается в том, что после того, как я использую параллельные задания, например -j 8, это вызывает следующие ошибки:

pg_restore: [archiver (db)] ошибка, возвращаемая PQputCopyData: сервер закрыл соединениенеожиданно Это, вероятно, означает, что сервер аварийно завершил работу до или во время обработки запроса. pg_restore: рабочий процесс [archiver] завершился неудачно: код выхода 1

pg_restore: ошибка [archiver (db)], возвращенная PQputCopyData: сервер неожиданно закрыл соединение. Это, вероятно, означает, что сервер аварийно завершил работу до или во время обработки запроса.

pg_restore: [archiver (db)] ошибка, возвращенная PQputCopyData: сервер неожиданно закрыл соединение. Это, вероятно, означает, что сервер аварийно завершил работу до или во время обработки запроса.

pg_restore: [archiver (db)] ошибка, возвращаемая PQputCopyData: сервер неожиданно закрыл соединение. Это, вероятно, означает, что сервер аварийно завершил работу до или во время обработки запроса.

Так что мой вопрос -

Как ускорить процесс восстановления? Это вызывает ошибку из-за параллельной работы не в состоянии синхронизировать с отношениями БД? (Думаю, в этом нет уверенности)

Примечание : Я установил autovacuum=off в файле postgresql.conf , который находится на моем промежуточном компьютере EC2,Смотрите мой рабочий процесс миграции на прикрепленном изображении enter image description here

...