Как ограничить использование памяти pg_dump? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть ~ 140 ГБ postgreDB на Heroku / AWS.Я хочу создать дамп этого на виртуальной машине Windows Azure - Windows Server 2012 R2, так как мне нужно переместить БД в среду Azure.

БД имеет несколько небольших таблиц, но в основном состоит изодна таблица занимает ~ 130 ГБ, включая индексы.В нем ~ 500 миллионов строк.

Я пытался использовать для этого pg_dump с:

./pg_dump -Fc --no-acl --no-owner --host * --port 5432 -U * -d * > F:/051418.dump

Я пробовал на виртуальных машинах различных размеров Azure, в том числе на некоторых довольно больших с(D12_V2) Оперативная память 28 ГБ, 4 виртуальных ЦП, 12000 MAXIOP и т. Д. Но во всех случаях pg_dump полностью останавливается из-за перестановки памяти.

На данной машине в данный момент используется вся доступная память, и она использовала последние 12 часов подкачки памятина диске.Я не ожидаю, что это завершится из-за перестановки.

Из других сообщений я понял, что это может быть проблемой со скоростью сети, поскольку она намного быстрее скорости ввода-вывода диска, из-за чего pg_dump поглотит вседоступная память и многое другое, поэтому я попытался использовать лазурную машину с большинством IOP.Это не помогло.

Так есть ли другой способ, которым я могу заставить pg_dump ограничить использование памяти или подождать получения дополнительных данных, пока они не будут записаны на диск и очистить память?

С нетерпением ждем вашей помощи!

Krgds.

Christian

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...