sle*_*ske 10 postgresql performance database-backup
我定期保存并稍后恢复用于测试的小型 PostgreSQL 数据库。它的数据作为测试的结果定期更新,然后必须进行新的转储,并且定期使用转储以良好定义的状态重新创建数据库。
我注意到转储(使用pg_dump -Fc database)只需要几秒钟,但恢复(pg_restore -d database)需要大约一分钟。这看起来很奇怪。我本来希望两者花费大约相同的时间(假设两个任务都是 I/O 绑定的)。
还原有问题吗?我可以让它更快吗?或者恢复比转储花费更长的时间是否正常?(如果是,那为什么?)
转储文件通常有大约 3-4 MiB;DBMS 是 PostgreSQL V8.4,在 Ubuntu Linux 下运行在 Pentium4 3GHz 和 1GiB RAM 上。
小智 10
索引的内容不是备份的一部分,只是索引的定义。这将只需要几个字节。当在恢复期间创建索引并且索引所有数据时,它会大得多。这需要时间,但这取决于您的情况需要多少时间。
pg_restore确实有一个并发还原选项(从 8.4 版开始),请使用--jobs=number-of-jobs