Fastest way to restore a database
От | William Garrison |
---|---|
Тема | Fastest way to restore a database |
Дата | |
Msg-id | 48CA9185.5050304@mobydisk.com обсуждение исходный текст |
Ответы |
Re: Fastest way to restore a database
|
Список | pgsql-general |
I know that PostgreSQL is slow at restoring databases. But there are some tricks to use when speeding it up. Here is a brief list I compiled from reading the docs and reading some forums. Is there a definitive list of things to do? * Turn off fsync So it won’t flush after every commit * Turn off full_page_writes Don’t write the WAL archives in a safe way. But we don’t need WAL archives during a restore. Future versions of postgres will let you turn off WAL archives entirely * Turn off archive_mode This disables the archiving of WAL logs * Increase the checkpoint_segments parameter (the default is 3 – so... maybe 10?) Increases the number of transactions that can happen before a WAL checkpoint * The --single-transaction paremeter to pg_restore *might* speed it up One transaction is more efficient, but an entire DB restore might be too big of a transaction. So I’m not so sure about this option * Increase the maintenance_work_mem setting to 512MB Gives more memory to CREATE_INDEX commands, which is part of the restore process * (PostgreSql 8.3 only) Turn off synchronous_commit This makes it so that the database won’t wait for the WAL checkpoint to be completed before moving on to the next operation. Again, we don’t want WAL archiving during a restore anyway. Are any of the above items not going to help? Anything I'm missing? Is there a way to disable foreign key constraints during the restore since I know it is already a good database? I am using postgreSQL 8.2.9 on Win32
В списке pgsql-general по дате отправления: