Каждую ночь мы сбрасываем и восстанавливаем базу данных объемом 200 ГБ, используя:
# Production, PG 9:
pg_dump DATNAME | some-irrelevant-pipe
# QA, PG 8.3:
some-irrelevant-pipe | psql -d DATNAME
Мне пришлось пойти на текстовые резервные копии, чтобы восстановить дамп с 9 на 8.3.
Восстановление мучительно и неоправданно медленно. Я заметил, что мой журнал полон этих:
2011-05-22 08:02:47 CDT LOG: checkpoints are occurring too frequently (9 seconds apart)
2011-05-22 08:02:47 CDT HINT: Consider increasing the configuration parameter "checkpoint_segments".
2011-05-22 08:02:54 CDT LOG: checkpoints are occurring too frequently (7 seconds apart)
2011-05-22 08:02:54 CDT HINT: Consider increasing the configuration parameter "checkpoint_segments".
Мой вопрос: возможно ли, что настройка checkpoint_segments
является узким местом? Какие еще параметры можно настроить для ускорения процесса?
Эта машина имеет 4 ГБ оперативной памяти. Другие возможные параметры в postgresql.conf:
shared_buffers = 1000MB
work_mem = 200MB
maintenance_work_mem = 200MB
effective_cache_size = 2000MB
# fsync and checkpoint settings are default