异地多活三中心,PG数据核对如何进行数据核对,保障最终数据一致性?

背景信息:
单位内重要系统,为了保障系统的高可用,按照异地多活三机房方式建设。每个机房均承接全量的业务数据。各机房都是主机房,均有能力提供写数据操作,没有冷备机房。
数据库使用的是PG数据库,版本14.7。 机房的维护管理人员 不允许开启逻辑复制。 所以目前数据同步的方式,目前采用的方式是,所有的数据维护交易都在一个机房数据库写入,然后用双写的方式,写入消息队列后,发送到另外两个机房,另外两个机房的应用程序,消费消息,调用应用程序,更新入本机房的数据库。
问题: 消息机制 无法保障所有的对等中心消费者都是消费成功和写数据库成功,所以需要一个数据核对的功能。
想咨询下大家有无好的 占用资源相对可控的方式进行数据核对的。 对比DUMP和COPY出文件基本没有可行性,应用使用容器化部署,数据库内数据量较大,单机房65套数据库,超20亿以上产品和客户信息。

参与6

ChatGPT 回答

针对您的问题,我可以提供以下解决思路:

  1. 数据库级别的数据核对:可以使用PG数据库的逻辑复制功能,将主机房的数据同步到从机房,然后在从机房的数据库中进行数据核对。但是,根据您的情况,维护管理人员不允许开启逻辑复制,这个方案可能不可行。
  2. 应用程序级别的数据核对:可以在应用程序中增加数据核对的逻辑,例如,在每次写入数据后,将写入的数据和消息队列中的数据进行比对,确保数据一致性。但是,这个方案需要在应用程序中增加额外的逻辑,可能会增加开发和维护的难度。
  3. 第三方工具的数据核对:可以考虑使用第三方工具进行数据核对,例如,使用pg_comparator工具对比主机房和从机房的数据是否一致。但是,这个方案需要占用一定的资源,可能会影响系统的性能。

综上所述,针对您的情况,建议采用应用程序级别的数据核对方案,增加数据核对的逻辑,确保数据一致性。如果应用程序的性能受到影响,可以考虑使用第三方工具进行数据核对。同时,建议与维护管理人员协商,开启PG数据库的逻辑复制功能,以便更好地保障数据一致性。

提问者

jillme
CIO某大型银行

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2024-02-26
  • 关注会员:3 人
  • 问题浏览:1414
  • 最近回答:2024-02-27
  • X社区推广