首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pg_restore花费的时间比pg_dump长得多

pg_restore花费的时间比pg_dump长得多
EN

Server Fault用户
提问于 2011-03-02 11:05:22
回答 2查看 15.9K关注 0票数 14

我定期保存并恢复一个用于测试的小型PostgreSQL数据库。测试结果是定期更新其数据,然后必须进行新的转储,并定期使用转储在定义良好的状态重新创建数据库。

我注意到转储(使用pg_dump -Fc database)只需几秒钟,但恢复(pg_restore -d database)只需一分钟。这听起来很奇怪。我希望这两个任务的时间大致相同(假设这两个任务都是I/O限制的)。

恢复有什么问题吗?我能让它快点吗?或者恢复时间比转储时间长得多,这是正常的吗?(如果是,那为什么?)

转储文件通常有3-4 MiB;数据库管理系统是PostgreSQL V8.4,运行在Ubuntu下带有1 Ubuntu的Pentium4 3 3GHz上。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2011-03-02 12:30:47

索引的内容不是备份的一部分,而是索引的定义。这只需要几个字节。当在还原期间创建索引并对所有数据进行索引时,它将大得多。这将需要时间,但这取决于你的情况有多少时间。

pg_恢复确实有并发恢复的选项(从8.4版开始),请使用--jobs=number-of-jobs

票数 13
EN

Server Fault用户

发布于 2011-03-02 11:12:17

为了进行还原,数据库必须做很多额外的工作:

一些事情立刻浮现在脑海中:

  • 写作比阅读慢
  • 解析输入需要时间
  • 更新索引和其他内部结构
  • 保持参考完整性

不过,不确定这是否相当于时间差。

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/242137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档