我正在考虑使用hot/warm standby instance创建postgresql设置,以便我的应用程序不受数据库服务器停机时间的影响,并且还可以快速备份主服务器。
我认为检测主服务器的最简单方法是更改DNS:
我有几个问题:
最后,当主设备不可用时,我也会在主/从切换方面提出不同的建议。
答案 0 :(得分:1)
如果您按照建议隐藏DNS后面的服务器切换,并且如果该方案在没有池的情况下工作,那么c3p0应该没有问题。 c3p0可以处理JDBC驱动程序可以处理的任何URL。通常(当然对于postgresql),不要求数据库地址是硬IP,DNS名称很好并且很常见。
要使您的计划有效,只需确保您已配置了一些合理的connection testing种类。 c3p0对你的DNS交换机一无所知。它只会获取并提供连接。但是当主服务器关闭时,c3p0将检测到这些连接已断开并退出它们。它将用新的Connections替换它们,这些将安静地来自辅助DBMS。
我对你的建议主要关注的是缓存。您必须小心配置DNS不要缓存您正在切换的名称,Postgres JDBC驱动程序可能只执行一次DNS查找并在内部缓存。这可能很难解决。