一般同城灾备数据中心可以提供应用级别的双活 ,但数据库只在主数据中心运行, 同城灾备数据库不对外提供服务, 通过底层盘阵的数据同步来实现数据一致性, 如果想实现数据库的双活 如何实现两个数据中心之间的数据同步?
1.A/S模式:HA双活,或者ReadWrite+Readonly模式的双活,一般采用数据库级别的自带工具或者第三方手段,如DB2的haddr,Oracle的DataGuard,Mysql的replication等。第三方的工具也很多,如shareplex、Realsyc、GoldenGate可以用于oracle。主库用于读写,通过数据库日志在目标数据库不断追平,目标库可是实现只读查询。
2.真正双活模式:这种情况下一般采用作业分离模式,不同节点作业不同,应用的开发相当复杂,包括异步事件串行化等。早期的sysplex是采用统一时钟源模式解决时序问题。
3.分布式模式:通过数据库中间件保证分布式数据库的一致性,底层存储保证数据在其它中心有冗余。如主机镜像卷,可以保证业务连续性;cdp可以保证数据还原到任意时点;远程镜像,如MirrorView、truecopy之类的可以保证数据冗余。
双活的概念在不同的客户眼中有不同的定义,例如A-S(主+温备),A-Q(主+查询),A-A(主+主)。
1.存储层可通过IBM PowerHA Hyperswap with IBM PPRC; EMC SRDF; HDS True Copy
2.存储虚拟化层可通过SVC的Hyperswap或者Stretch Cluster;EMC VPLEX
3.数据库层的双活可通过DB2 GDPC(DB2 PureScale with GPFS)/DB2 HADR 或者 Oracle Extended RAC/OGG(Oracle GoldenGate)
上述技术可分别满足客户对不同双活定义的需求。