我不是DBA;我是基于企业数据库的应用程序的主要开发人员。
我目前正在推出一些新机器来升级我们现有的企业数据库。目前我们正在运行Postgres 8.4,在我们的DR站点上有一个数据库,该数据库通过前雇员执行的一些自定义rsync工作来定期接收更新。
我们要解决的一个主要问题是两个全球办事处之间的延迟。我们在纽约有工作人员,在伦敦有工作人员。目前,伦敦的工作人员遭受了我们VPN管道的命运。我真的无法改变这种基础设施。
我想做的是转到Postgres 9并设置流式复制。奴隶将在伦敦办公室,这将减轻用户的阅读问题。我预见到的问题是写入从机(不知道PG如何处理这个问题,我的理解是从机处于只读模式)。理想情况下,写入将被发送到纽约的主人(来自伦敦的写入很少,但必要)由数据库本身发送。此外,我可以设置失败转移,使其充当热插拔备份(替换DR)。同样,所有内容都包含在Postgres配置中,没有其他代码。
这是我理想化的解决方案。我有多远?这是可能吗?
我对这个主题的广度感到有些不知所措,谷歌并没有真正帮助我。我将非常感谢一些经验丰富的DBA提供的任何建议,包括轶事,相关文档或示例。
目前我们正在使用SQLAlchemy作为数据库的主要接口,如果这是相关的。这确实意味着我们没有与Postgres联系在一起。
谢谢大家。
答案 0 :(得分:10)
pgpool-II可以为您处理此问题:
检查this example。
答案 1 :(得分:2)
PostgreSQL 9文档概述了可用的选项。
http://www.postgresql.org/docs/9.0/static/different-replication-solutions.html
如果您不介意不必写入主服务器而不是服务器,或者如果您需要,请查看任何可用的多主复制技术,您可能需要查看Slony。