金融客户 采用本地RAC库+本地ADG库+远端ADG库 的架构,业务通过一些控制将读写型的连接放到RAC库,将一些查询操作放到本地ADG库。
请问:
1、是否要设置本地RAC库和本地ADG库的日志应用时延,以防止本地RAC库出现逻辑错误后,本地ADG库可以回滚?
2、如果客户在账户中存了1w块钱,但是在ADG库上没有及时查询出来,那么势必会造成投诉。 在这种情况下,如何设置主库和本地ADG库的时延呢?
对于第一个问题不用设置本地备库的应用时延,在远端ADG库开启闪回就可以了,很方便,我们现在就用的这种方案。第二个问题本地ADG备库肯定要使用最大保护模式,最大保护模式数据必须写到备库返回给主库事务才会提交,所以100%不会出现这种问题,但是考虑到最大保护模式对网络要求非常高,建议ADG同步网络要做链路及网卡设备冗余。
收起@韩成亮:
其实我想表达的是,在主库上进行的交易同步到本地ADG库会有一个延时,如果刚好在某个点,客户查ADG库,发现交易数据没有更新过来,那势必会投诉。
对于这种情况,我们在业务或者架构上怎么去设计?
本地由于你做了读写分离,为了避免未正确配置的连接读到了延迟的本地ADG库。所以本地ADG库不要设置延迟应用。
远端的ADG库可以日志应用延迟。或者在本地搭建一套不给实时业务使用的ADG延迟应用库(但是可以在上面备份、历史数据查询等)