目前同城双活的架构部署说明如下:
1、同城双中心应用采用双活部署,数据库采用ADG复制,两中心的应用实时连接主中心的数据库,当主中心的数据库出现问题切换到灾备中心,应用通过DNS自动解析到灾备中心进行交易。
2、主备数据中心分别部署F5负载均衡,应用通过F5 LTM实现应用负载。数据中心内部通过F5 GTM实现内部DNS解析,广域网通过F5 GTM实现双数据中心DNS解析。
3、主备数据中心的网络采用三层架构(未采用二层互通),应用采用不同的网络段地址部署。
对于双活测试需要测试哪些场景?故障切换的场景应该覆盖哪些?对于非计划内的切换,数据丢失的RPO怎么验证,业务数据补录怎么做?
1 你个这个架构不是双活吧。如果是ADG的最高保护模式(Maximum Protection)可以做到两边数据完全一样,但是,也是一边读写,一边读。切换的时候重新开库,另一边才可以读写。而且, 最高保护模式(Maximum Protection )会提高生产库的压力。
一般的做法都是最高性能模式(Maximum Performance) 也是一边读写,一边读。 是异步的。RPO肯定不是0 。这比较稳妥不影响生产库。
2 F5做DNS 负载没有问题。问题是,怎么区分写请求 读请求到不同的数据中心?F5做不到的。只能在应用端处理,这个对应用来说也挺难的,除非前期应用就是这么设计的。
3 假设2的问题解决了,ADG 最高保护模式 。也只是一个读写数据中心 一个只读数据中心。停掉一边的F5做 读写测试,停掉另一边做只读测试。
RPO验证就是 写一条数据,看两边是不是都可以查到。两边的时间差就是RPO时间。 如果最高保护模式 那应该是0 最高性能模式会有RPO时间。时间的长短和性能,网络,都用关系。
如果RPO 要求的是5分钟,那丢五分钟的数据是允许的。不用补录数据。RPO=0 就不应该有补录数据的情况。
你这种情况应该用存储双活+跨站点RAC