В бета версии PostgreSQL 8.4 в утилите pg_restore появилась поддержка возможности загрузки дампа 
в несколько параллельных потоков. Например, загрузка дампа базы размером 300 Гб на 8-ядерном сервере 
занимала стандартным образом 12 часов, при распараллеливании процесса загрузки на 8 потоков, 
время загрузи сократилось до 3 часов. Полная перезагрузка дампа базы может понадобиться например при миграции 
с PostgreSQL  8.2 на 8.3 или при переходе с 32- на 64-разрядную сборку системы.Огромным плюсом является и то, что параллельный вариант pg_restore 
из ветки 8.4 прекрасно работает  с ветками 8.2 и 8.3.
Рассмотрим процесс миграции с 8.2 на 8.3. На рабочей машине дополнительно установим в отдельную директорию бета версию 8.4:
   ./configure --prefix=/usr/local/pgsql84
   make
   make install 
Создаем дамп работающей базы PostgreSQL 8.2, использую утилиту pg_dump из состава  PostgreSQL 8.3:
   /usr/local/pgsql83/bin/pg_dump -F c -v -f my_db.dump my_database
В зависимости от конфигурации дополнительно может потребоваться сделать дамп ролей:
   /usr/local/pgsql83/bin/pg_dumpall -g -f my_roles.dump
Восстанавливаем роли:
   /usr/local/pgsql83/bin/psql -f my_roles.dump postgres
Запускаем процесс параллельного восстановления базы, число потоков задается через опцию -j, в нашем случае 
используется загрузка в 8 потоков. При указании большого числа потоков нужно  быть уверенным, что система 
ввода/вывода не окажется узким местом, т.е. база размещена на высокопроизводительном хранилище:
   /usr/local/pgsql84/bin/pg_restore -F c -j 8 -v -C -f my_db.dump
Дополнительно можно упомянуть, что в рамках проекта EnterpriseDB ведется разработка утилиты pg_migrator 
(http://pgfoundry.org/projects/pg-migrator/), позволяющей осуществлять перенос базы на новый сервер 
без остановки работы СУБД. Но  pg_migrator к сожалению находится еще на стадии альфа тестирования.
Некоторые советы по оптимизации процесса создания дампа и его восстановления:
* Во время восстановления можно отключить fsync режим и autovacuum, значительно увеличить размер памяти 
(до 1 Гб если памяти много), заданный в параметрах конфигурации work_mem и maintenance_work_mem, 
при этом  размер wal_buffers и checkpoint_segments также нужно увеличить до 16 или 32 Мб;
* При наличии больших GIN или GiST индексов, время восстановления которых нередко занимает 75% от всего времени 
восстановления, если без этих индексов можно себе позволить немного поработать, имеет смысл разделить 
процесс восстановления на две стадии: восстановление первичных данных, запуск БД в продакшин, 
восстановление GIN или GiST индексов уже на работающей базе.
* Всегда следует использовать pg_dump из более новой версии PostgreSQL, а не из старой, апгрейд которой производится.
* Для продакшин систем, время и наличие возможных подводных камней стоит предварительно оценить, 
выполнив тестовые dump/restore без остановки первичной базы;
URL: http://it.toolbox.com/blogs/database-soup/using-84-parallel-...
Обсуждается: http://www.opennet.dev/tips/info/2067.shtml