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