双活数据中心下的并行DB虽然在存储层复制了两份数据,但是这两份数据的复制还是基于底层存储块,并没有在事务逻辑层保持同步,所以一份数据据出了逻辑错误,另一份数据也无法幸免,又比如虽然是两个跨中心的存储,一旦一个存储故障了,但是数据还未同步至另一个存储,这时候数据可能就有数据逻辑错误和数据不一致的风险,甚至数据库无法使用了,这时候并行DB虽然解决了些许问题,但是逻辑错误风险问题,依旧还是存在。如何在事务层再做一份保护?我个人认为,可以采用折中的方式,每日的晚间备份+异步的数据库复制技术,如HADR、DG、CDC等,采用异步的方式,由于这种复制技术是基于数据库日志的,从事务层可以保证数据的可用性,同时采用异步的方式下,也避免了这种复制带来的性能损耗。但是这种方式下,在并行DB的另一节点出现数据不一致,逻辑错误时,无法有效继续使用数据库时,起码可以回到最近的时间点,继续对外提供服务。比起数据库备份恢复来说,RPO和RTO要降低不少。
收起