社区!我想知道是否有任何新的扩展/解决方案可以复制不是整个 PG 集群而是通过数据库复制?逻辑复制不是一种选择。例如,我希望我的主数据库“test”以两个化身存在于辅助服务器上——“testreplica1”和“testreplica2”能够促进第一个数据库对其进行处理,同时第二个数据库仍将启动——迄今为止的生产
社区!我想知道是否有任何新的扩展/解决方案可以复制不是整个 PG 集群而是通过数据库复制?逻辑复制不是一种选择。例如,我希望我的主数据库“test”以两个化身存在于辅助服务器上——“testreplica1”和“testreplica2”能够促进第一个数据库对其进行处理,同时第二个数据库仍将启动——迄今为止的生产
查看PostgreSQL:高可用性、负载平衡和复制:不同解决方案的比较。总之,以下解决方案可以提供每个数据库和每个表的复制:i,逻辑解决方案(例如,内置和 pglogical),ii,基于触发器的解决方案(例如,Slony-I 和 Londiste),以及,iii,某些多主机复制(例如,Bucardo)可以配置为提供每个数据库/每个表的复制,以及,iv,某些代理解决方案(PgBouncer)。
Slony-I 和 pglogical 因其可用性、完整性、粒度、可管理性和可移植性优势,都是很好的解决方案,前者暴露了已被证明对监控和诊断有用的实时内部结构,后者本机实现双向复制(尽管, Slony-I 可以促进双向架构,例如,使用分区和/或每个站点表进行写入和视图进行读取)。
注意:虽然我对 Slony-I 有更多的经验,它当然提供了 DDL(和所有其他语句)复制(并且包括“实时”序列状态复制),但我确实相信 pglogical 也复制了大多数 DDL,尽管有一些例外。