

最近在多场技术交流中,尤其是在数据库国产化改造前期、需敲定数据同步方案的环节,总有同仁对数据库高可用方案(如实时容灾)、数据传输方案(如离线 ETL)及数据同步方案(如全量、实时增量)混淆不清。结合此前发布的《数据库管理-第343期 灾备、容灾、备份,傻傻分不清楚(20250701)》,本期就推出 “傻傻分不清楚” 第二季,专门拆解这几组易混淆的方案概念。
在介绍数据库高可用方案之前,首先需明确一点:本文所提及的数据库高可用方案,核心聚焦主备架构下的高可用容灾模式,其核心目标是 —— 当主数据库(或数据库节点)发生异常时,能保障数据库服务持续不中断。因此,这类方案要求备用数据库必须存储主库的完整数据,同时需实现数据的极速同步;唯有如此,才能满足数据库高可用对 RTO(恢复时间目标) 和 RPO(恢复点目标) 的严苛要求。
在集中式数据库场景下,通常通过基于日志的逻辑复制或物理复制技术,实现主备数据库的实时同步;主流的主备高可用架构则包括 Oracle DG/ADG、MySQL 主从 / MGR、KES RWC、YashanDB 主备复制等。
而在分布式数据库场景下,则常沿用前文提及的主备同步思路,既可以节点为单位,也可以其他数据单元(如SCHEMA、租户、表等)为单位;同时搭配 PAXOS/RAFT 等分布式一致性算法,在确保数据副本间多数派一致性的同时,兼顾足够的性能。
与数据库级别的高可用方案不同,数据传输的核心即常说的 ETL 过程 —— 以离线方式定期将所需数据从源数据库传输至目标位置:或是用于数据归档的数据库,或是支撑离线数据分析的大数据平台,亦或是其他需临时调用数据的场景。这类场景对数据实时性要求较低,但往往需要对数据进行处理,例如调整格式、精度、维度等。
作为数据库国产化改造前期的核心工作之一,实现原有数据库与国产数据库的数据同步是一项关键且具有挑战性的任务,其核心目标是确保两类数据库间的数据实时对齐,为后续将生产业务平滑切换至国产数据库奠定基础。具体需满足以下要求:
其中,全量迁移的实现逻辑与第二节 “数据传输” 的离线方式类似;而在实时增量同步环节,还需额外处理以下特殊问题:
本期对数据库高可用、数据传输、数据同步的概念和场景进行了讲解。 老规矩,不知道写了些啥。