Postrgres恢复/复制

时间:2015-04-30 13:59:07

标签: postgresql restore database-replication

我有一个应用程序正在使用的数据库(生产),另一个用于解决问题(开发)。

它们都是相同的数据库,但却是解决我们用来解决事件和开发新项目的问题的数据库。

每晚我从生产数据库中获取转储并在另一个上恢复。但随着数据库的增长,这个过程开始耗费太长时间。所以我们决定做一个转储,不包括我们不会在“解决问题”/开发场景中使用的一些表。

但是现在这种情况达到了极限情况,它花了太长时间,而且我们不能排除任何表格。

Ps:我们需要每天恢复数据库,因为我们需要昨天数据中的信息来解决问题。

任何sugestions?

3 个答案:

答案 0 :(得分:1)

更好的解决方案是设置主/从流复制,而不是每晚手动执行完全转储和恢复。

在这种情况下,您的生产数据库将是您的主人'和你的开发数据库你的奴隶'。对主服务器的更新将自动同步到从属数据库。

对于PostgreSQL,您可能需要查看提供此功能的Slony-I。文档非常有用。

答案 1 :(得分:0)

您可以尝试SymmetricDS ProfessionalSymmetricDS Open Source。它完全支持PostgreSQL复制。默认情况下,它会每分钟推送/拉动更改,但您可以安排这些作业每24小时运行一次(如果我理解您的要求正确)。这样做的好处是它只能推动某一天发生的变化而不是整个数据集,从而减少了“恢复”的时间。您还可以选择对同步或不同步感兴趣的表格。

答案 2 :(得分:0)

您是否尝试过使用带有-j选项的pg_restore(并行恢复)?它通常使用所有可用的cpu核心而不是一个来加速。应该以自定义格式(pg_dump的-F c选项)创建转储,否则并行恢复将无法正常工作。

或者更好的方法是使用pg_basebackup,它只受网速和磁盘读/写速度的限制。