Binlog Server守护MySQL数据0丢失
核心场景的数据库一旦出现了数据丢失,会极大的影响了业务的可用性。因此,数据库的高可用性和一致性始终是核心业务系统的关键诉求。比如,DBA 同学也刚刚经历了这样惊心动魄的一幕:
💥 某天,数据库 P0 告警突发,核心集群主库宕机!XX同学需要立即与上下游业务紧急联动,定位到数据丢失并完成数据修正。经过一个小时的“救火”操作后,业务才逐渐恢复正常。这一“救火”场景出现,既消耗了大量的人力成本,也影响了系统整体稳定性。因此,亟需一种方案,当数据库在发生故障切换下也能自动保障数据一致性和完整性,彻底免除人工介入。
在展开方案介绍之前,我们先来了解 2 个知识:
🙋 什么是 RPO=0?RPO=0 意味着在任何切换或灾难发生后,数据一条都不丢! 如果实现了 RPO=0,当数据库发生宕机时,新的数据库能够100% 自动补齐所有数据,上下游业务不用再担心数据修复事务,极大降低运维压力和业务风险,在高可用里面实现了数据恢复的闭环。
🙋 业内主流OLTP数据库如何实现 RPO=0?业内主流方案主要分为以下三种: