青年数据库学习互助会

数据库高可用、数据传输、数据同步,傻傻分不清楚

数据库管理-第368期 高可用、数据传输、数据同步,傻傻分不清楚(20250924)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809
IFClub:胖头鱼的鱼缸
除授权转载并标明出处外,均为“非法”抄袭

c1e2b050f885f08f4d01b61dbc9323df.jpg
最近在多场技术交流中,尤其是在数据库国产化改造前期、需敲定数据同步方案的环节,总有同仁对数据库高可用方案(如实时容灾)、数据传输方案(如离线 ETL)及数据同步方案(如全量、实时增量)混淆不清。结合此前发布的《数据库管理-第343期 灾备、容灾、备份,傻傻分不清楚(20250701)》,本期就推出 “傻傻分不清楚” 第二季,专门拆解这几组易混淆的方案概念。

1 数据库高可用

在介绍数据库高可用方案之前,首先需明确一点:本文所提及的数据库高可用方案,核心聚焦主备架构下的高可用容灾模式,其核心目标是 —— 当主数据库(或数据库节点)发生异常时,能保障数据库服务持续不中断。因此,这类方案要求备用数据库必须存储主库的完整数据,同时需实现数据的极速同步;唯有如此,才能满足数据库高可用对 RTO(恢复时间目标) 和 RPO(恢复点目标) 的严苛要求。

在集中式数据库场景下,通常通过基于日志的逻辑复制或物理复制技术,实现主备数据库的实时同步;主流的主备高可用架构则包括 Oracle DG/ADG、MySQL 主从 / MGR、KES RWC、YashanDB 主备复制等。

而在分布式数据库场景下,则常沿用前文提及的主备同步思路,既可以节点为单位,也可以其他数据单元(如SCHEMA、租户、表等)为单位;同时搭配 PAXOS/RAFT 等分布式一致性算法,在确保数据副本间多数派一致性的同时,兼顾足够的性能。

2 数据传输

与数据库级别的高可用方案不同,数据传输的核心即常说的 ETL 过程 —— 以离线方式定期将所需数据从源数据库传输至目标位置:或是用于数据归档的数据库,或是支撑离线数据分析的大数据平台,亦或是其他需临时调用数据的场景。这类场景对数据实时性要求较低,但往往需要对数据进行处理,例如调整格式、精度、维度等。

3 数据同步

作为数据库国产化改造前期的核心工作之一,实现原有数据库与国产数据库的数据同步是一项关键且具有挑战性的任务,其核心目标是确保两类数据库间的数据实时对齐,为后续将生产业务平滑切换至国产数据库奠定基础。具体需满足以下要求:

  • 通过一次性全量迁移,将某一时间点的全量基线数据导入国产数据库;
  • 采用实时增量同步方式,将基线时间点之后的变更数据持续同步至国产数据库;
  • 全量迁移与增量同步过程均不得影响原有数据库的正常运行;
  • 需配套反向同步方案,保障数据库双平面的高可用运行。

其中,全量迁移的实现逻辑与第二节 “数据传输” 的离线方式类似;而在实时增量同步环节,还需额外处理以下特殊问题:

  • 由于源数据库与国产数据库存在差异,数据类型、数据精度、存储方式等维度均可能不同 —— 与 ETL 过程类似,此处虽存在数据转换需求,但需额外满足实时性要求;
  • 同步过程不仅需支持数据变更(DML 操作)的同步,还需兼容 DDL 操作,以应对数据同步期间的业务应用迭代,或适配针对国产数据库特性的同步改造需求。

总结

本期对数据库高可用、数据传输、数据同步的概念和场景进行了讲解。
老规矩,不知道写了些啥。