Мне нужно импортировать базу данных PostgresSql со старого сервера в новый Amazon RDS.
Я создал файл дампа db, подключенный к моей RDS через pgAdmin, и начал импортировать консоль pgAdmin (\i dump_file.sql
).
Кажется, все работает, но это действительно очень медленно и кажется, что он застрял в одном ряду на пару часов ... Я открыл монитор RDS и увидел следующее:
Таким образом, похоже, что есть операторы записи (но почему так мало) и некоторая загрузка ЦП, но похоже, что он использует очень низкий процент своих возможностей. Также я подробно проверил использование диска, и он сжимается, поэтому он действительно пишет, например, он не застревает, просто очень медленно.
Что я могу сделать, чтобы быстрее импортировать свою базу данных? почему так медленно? почему он использует так мало процессора и пишет?
Такое ощущение, что RDS не использует весь свой потенциал ...
PS размер моей БД составляет около 10 ГБ.
Конфигурация postgresql по умолчанию не подходит для массового импорта данных. Главное, что вам нужно сделать перед импортом такого большого количества данных, - это увеличить max_wal_size
чтобы уменьшить количество раз, когда postgresql нужно будет выполнять контрольную точку во время импорта. Кроме того, если вы уверены в качестве данных, импортируйте их в транзакции. Видеть https://www.postgresql.org/docs/9.5/static/populate.htm для других идей (отключить репликацию, отключить индексы, отключить триггеры, использовать pg_restore --jobs X
распараллелить импорт)