目录标题
概要
Oracle Data Guard 的三种保护模式——最大保护(Maximum Protection)、最大可用性(Maximum Availability)和最大性能(Maximum Performance)——在达梦(DM)数据库中分别对应三种不同的备库/集群模式:订阅备库、实时主备(同步归档或实时归档模式)和异步备库。此外,达梦的读写分离集群是基于即时归档(Timely Archive)或实时归档(Realtime Archive)构建的高性能读写分离方案,可视为介于“最大性能”与“最大可用性”之间的一种特殊部署。以下内容将逐一对比说明二者的映射关系与关键特性。
1. 最大保护(Maximum Protection) ↔ 订阅备库(Subscription Standby)
- Oracle:Maximum Protection 要求 LGWR 在本地 Online Redo Log 和至少一台 Standby Redo Log 上同步写入且确认(
SYNC AFFIRM
),否则主库会阻塞或关闭,以确保零数据丢失(RPO=0)(Oracle Docs, Oracle Docs)。 - 达梦:订阅备库通过逻辑发布/订阅机制(
ARCH_TYPE=SUBSCRIBE
),只有在订阅备库确认写入并(可选)重演完成后,主库事务才算提交;若备库不可用,主库将被阻塞,确保 RPO=0,与 Oracle 最大保护模式语义一致(eco.dameng.com)。 - 适用场景:核心金融、支付等对数据丢失零容忍,且可接受主库暂时不可用的场景。
2. 最大可用性(Maximum Availability) ↔ 实时主备(Real-time Standby / 同步归档模式)
-
Oracle:Maximum Availability 要求至少一个同步备库
SYNC AFFIRM
写入确认后才提交;当网络/备库不可用时,可自动降级为异步传输(ASYNC NOAFFIRM
),恢复后再升级回同步,以兼顾高可用与零丢失(Oracle Docs)。 -
达梦:
- 实时归档(Realtime):主库在写入在线日志前通过 MAL 通道同步发送 Redo,收到 ACK 后才写本地日志,等同于
SYNC AFFIRM
传输;当归档失败可选降级为即时或异步模式。 - 同步归档(Sync Archive):主库写日志后立即刷盘并同步发送给备库,收到 ACK 即响应,不等待重演;失败时仅将通道置 Invalid,不 Suspend 主库,等同于可降级行为(eco.dameng.com, eco.dameng.com)。
- 实时归档(Realtime):主库在写入在线日志前通过 MAL 通道同步发送 Redo,收到 ACK 后才写本地日志,等同于
-
适用场景:要求零数据丢失且尽量保证主库可用的高可用业务,如在线交易、核心业务系统。
3. 最大性能(Maximum Performance) ↔ 异步备库(Async Standby)
- Oracle:Maximum Performance 为默认模式,LGWR 提交时只写本地日志,后台异步将 redo 传输至 Standby(
ASYNC NOAFFIRM
),主库性能无感知影响,但可能出现 RPO>0(Oracle Docs)。 - 达梦:异步备库由定时器(
TIMER_INI=1
)或归档进程异步推送归档日志到备库,主库提交不等待网络确认,性能损耗极小;存在短暂或较长延迟,适用于可容忍延迟的报表、历史统计等场景(eco.dameng.com, eco.dameng.com)。 - 适用场景:OLAP 报表、离线分析、历史归档等对实时性容忍度较高的业务。
4. 读写分离集群(Read-Write Splitting Cluster)
-
定义:在实时主备架构基础上,通过即时归档(Timely Archive)或实时归档将写操作日志异步/同步推送至多个只读节点,再由代理或路由层自动分发读写请求,实现读写分离与负载均衡(eco.dameng.com)。
-
模式映射:
- 数据一致性模式:配置
ARCH_WAIT_APPLY=1
(事务一致模式)+ 即时归档,读库几乎与主库事务级一致,相当于对读写分离集群提供“最大可用性”级别的保护。 - 高性能模式:配置
ARCH_WAIT_APPLY=0
(高性能模式)+ 实时或即时归档,读库同步延迟更低,性能接近“最大性能”模式。
- 数据一致性模式:配置
-
适用场景:高并发事务系统中读多写少的业务,如电商、社交、内容推荐等,通过扩展只读节点提升吞吐率和并发能力(eco.dameng.com)。
小结
Oracle DG 保护模式 | DM 对应模式 | RPO | 主库提交行为 |
---|---|---|---|
Maximum Protection | 订阅备库(逻辑订阅) | 0 | 等待订阅备库确认(阻塞/停机) |
Maximum Availability | 实时主备(Realtime/Synchrony) | 0 / >0 | 同步发送,失败可降级为异步继续服务 |
Maximum Performance | 异步备库(Async Standby) | >0 | 异步发送,主库提交即返回 |
– | 读写分离集群(Timely/Realtime + ARCH_WAIT_APPLY) | ≈0 / >0 | 通过配置可在事务一致或高性能间切换 |
以上对比展示了 Oracle Data Guard 三种保护模式与达梦数据库主备及读写分离相关模式的一一映射与差异,便于根据业务对数据保护与性能的要求选择合适方案。