在企业的数据库容灾架构当中,最关键的一个故障场合就是主备库之间的通讯中断,往往这个通讯距离是跨越区域级别的距离。在面对这种故障时,不同的数据库容灾架构具有不同的处理细节,例如Oracle、DB2、Mysql等。希望能引起大家的深思和回忆,共享出自己的独到见解。
收起通常这种数据库的主备库的数据复制都是基于数据库日志的复制,日志的复制又是建立在主备节点间的通讯网络之上的,这个网络通讯中断,只是影响了复制而已,对主库没有任何影响,备库的时间戳仍旧停留在中断的时间,但备库依旧可以对外提供查询服务,只不过数据已经跟不上主库了,当通讯恢复后,主库会自动判断主备间的日志时间戳,发现不匹配,立即将主库中大于备库时间戳的所有日志都复制至备库,备库根据这些日志,进行事物的提交,逐渐追上主库的数据,至到主备数据保持一致。
以上是基于DB2 HADR的场景,像ORACLE和MYSQL我估计也差不多,细节希望其他ORACLE和MYSQL的专家能够补充。