数据库同城双活架构,四种方式优劣立现
基于应用的数据复制:通过应用程序与主备中心的数据库进行同步或异步的写操作,以保证主备中心数据的一致性。这种方式技术实现复杂,与应用软件业务逻辑直接关联,实现和维护难度较高,并且会提高系统的风险与数据丢失的风险,在实际场景中很少使用到。
基于数据库的数据复制:利用数据库自身的数据库日志基于逻辑复制或物理复制的方式,将数据同步或异步的方式复制到备节点,实现主备数据的一致性。基于数据库层的复制技术依赖于各数据库产品自身的能力,能够实现记录级和事务级的数据一致性,技术方案成熟稳定并且网络占用带宽小,是主流的数据复制方案。
基于主机的数据复制:由安装在主机上的卷管理软件或是文件系统来实现,在实际的应用场景中,以基于卷管理软件的数据复制技术居多,这种方式通常与主机平台相关,对软件的要求较高。通过主机数据管理软件实现数据的远程复制,当主数据中心的数据遭到破坏时,可以随时从备份中心恢复应用或从备份中心恢复数据。一般用于备份容灾环境的数据同步或恢复,实际应用案例也不多。
基于存储设备的数据复制:利用存储阵列自身的盘阵对盘阵的数据块复制技术实现对生产数据的远程拷贝,分为同步方式和异步方式,同步方式可以保证后备磁盘阵列中的数据与生产系统数据同步,实现RPO为零。该复制技术依赖于存储设备的功能,要求是同构的存储系统,并且对带宽的要求较高。
基于存储虚拟化的数据复制:与基于存储设备的复制技术类似,不同之处是由存储虚拟化控制器在存储网络层面实现,不要求底层存储阵列同构。
2、数据库同城双写的难点
3、类RAC集群架构
首先存储层借助存储虚拟化产品实现双数据中心组成的存储集群,依赖双中心网络的二层打通,成本上需要网络波分设备、存储交换机等;
仲裁的一致性问题,数据库RAC集群和存储集群的一致性判断,数据库集群依赖集群管理组件来判断、存储依赖依赖站点之间网络的连通性,如果出现不一致,整个集群会crash;
链路稳定状态不可控:双中心链路的主干网延迟因素和线路稳定性,在读写热点相对突出的业务上会出现数据库读写性能影响比如IO阻塞,同时链路的不稳定会导致存储链路频繁切换,甚至会导致集群仲裁的频繁发生。
4、原生分布式数据库实现
当跨中心的读写业务大时,会对跨中心的网络带宽带来压力,进行会影响交易性能。
跨中心网络时延和链路抖动的影响,影响分布式事务的性能以及分布式组件之间的链路检测的稳定性和有效性。
5、单元化部署架构
单元化的拆分:设计合理的单元拆分方式,比如按照地域、客户号进行单元划分,单元和数据库的分片规则也需要确认;
单元扩展:随着业务规模的增长,需要扩展单元,涉及到分布式数据库的横向扩展;
单元化架构高可用:单个单元故障不会造成全局影响提高系统整体可用性,结合分布式数据库的高可用特性,设置合理的副本数,保证RPO和RTO的要求,甚至实现数据库层站点级别的双活架构;
跨单元数据同步汇总:对于跨单元数据的汇总,支持部分批量加工的综合分析,需要从不同单元进行数据抽取汇总和加工。
6、总结