Postgresql Postgres 9.0和pgpool复制:单点故障?
我的应用程序使用Postgresql 9.0,由一个或多个与全局数据库交互的工作站组成:它类似于一个普通的客户机-服务器应用程序,但为了避免任何额外的硬件,所有工作站都包括客户机和服务器:主站升级为同时充当服务器,任何其他工作站都充当它的客户机。这个解决方案允许我具有可扩展性:用户最初可能需要一个站点,但它可以决定在未来扩展到更多站点,而不需要在初始阶段使用无用的单独服务器 我试图避免,如果主站坏了,所有其他人都停止工作;要做到这一点,最好的解决方案可能是将主数据库连续复制到一个或多个站点上未使用的数据库 搜索我发现pgpool可以满足我的需要,但从所有示例和教程来看,故障点似乎从主数据库移动到运行pgpool的服务器 我读了一些关于多pgpool和heartbeat工具的文章,但不清楚如何做Postgresql Postgres 9.0和pgpool复制:单点故障?,postgresql,failover,pgpool,Postgresql,Failover,Pgpool,我的应用程序使用Postgresql 9.0,由一个或多个与全局数据库交互的工作站组成:它类似于一个普通的客户机-服务器应用程序,但为了避免任何额外的硬件,所有工作站都包括客户机和服务器:主站升级为同时充当服务器,任何其他工作站都充当它的客户机。这个解决方案允许我具有可扩展性:用户最初可能需要一个站点,但它可以决定在未来扩展到更多站点,而不需要在初始阶段使用无用的单独服务器 我试图避免,如果主站坏了,所有其他人都停止工作;要做到这一点,最好的解决方案可能是将主数据库连续复制到一个或多个站点上未使
考虑到我的体系结构,那里不存在分离和专用的服务器,有人能给我一些提示吗?在故障转移的情况下,似乎PGPUP在自动化中做了所有的事情,我可以考虑在没有管理员干预的情况下由标准用户来处理故障转移情况吗? < p>对于这些应用程序,我非常喜欢设计。链接旁的文件相当大,但值得一读。事实上,有些应用程序已经实现了这种方法:
- 申请(需要IMHO的大量工作)李>
- 数据库李>
- 作为一个中间件
如果pgpool中断,您将面临大量无法访问数据库的客户端。如果您将它们直接指向数据库,避免使用pooler,您将面临性能问题
在pgpool中断的情况下,您的复制将停止,从机将无法跟上主机,因为在pgpool之外没有进行更改跟踪(据我所知)
如果pgpool中断,您的查询将突然运行得慢得多,如果系统能够处理这样的负载。在这种情况下,主数据库将被捕获,而不是失败的pgpool
在pgpool中断的情况下,所有此类连接都将中止,这可能会中断DB/应用程序协议,即应用程序设计为永远不会中断连接
在pgpool中断的情况下,将无法执行此类查询,从而导致更长的处理时间
- DNS,除非您需要所有客户端的重新配置李>
- 重新初始化备份和故障切换过程李>
- 确保老主人不会试图争夺它的角色,以防它回来()李>
- 根据我的经验,我们是来自DBA、系统管理员、架构师和运营部门的人员,他们决定正确的战略
PostgreSQL的可扩展性非常好,因此只需稍加努力即可实现分布式。首先,我建议签出而不是pgpool。接下来,您试图达到什么级别的缩放?你可以选择t