更快的复制postgresql数据库的方法

时间:2014-07-23 09:44:54

标签: postgresql

我在测试服务器上有12个测试数据库,我从主服务器生成转储,并每天将其复制到测试服务器。我使用以下命令填充测试数据库:

zcat ${dump_address} | psql $db_name

每个数据库需要45分钟。如果我只为一个数据库执行此操作,那么它会更快,然后使用:

CREATE DATABASE newdb WITH TEMPLATE olddb;

其余的?我还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

这取决于有多少数据和索引。加快进度的一些想法包括:

  • 确保转储不是INSERT命令 - 它们往往比COPY慢得多。
  • 如果您有许多索引或约束,请使用自定义或归档转储格式,然后调用pg_restore -j $my_cpu_count-j控制同时创建这些线程的线程数,并且索引创建通常受CPU限制。
  • 使用更快的磁盘。
  • 完整复制$PGDATA(rsync或一些精美的快照)。