注册
主备集群异步数据同步的学习
专栏/培训园地/ 文章详情 /

主备集群异步数据同步的学习

壹堆草芥 2026/11/05 106 0 0
摘要

目录

一、异步数据同步说明
二、异步同步的功能与限制
三、异步同步总体流程
四、关键机制
(一)定时器驱动发送
(二)KEEP LSN 断点续传
(三)延时同步(ARCH_SEND_DELAY)
五、配置要点
(一)关键配置示例
(二)检验 SQL 与环境验证
六、小结

一、异步数据同步说明
异步同步是主备集群中通过异步归档(ARCH_TYPE = ASYNC)实现的数据同步方式。它与实时归档(REALTIME)、即时归档(TIMELY)最大的区别在于:
1.主库事务提交时不等待备库响应,Redo 日志先落本地,归档日志由定时器周期性触发后台批量发送;
2.备库收到日志后异步重演,备库数据通常落后于主库(延迟量级取决于定时器周期与网络状况);
3.备库发送失败时主库不切换,仅将归档状态置为 Invalid,等待下次定时器触发重试;
4.异步备库的定位是容灾 + 查询分流 + 误操作缓冲。

二、异步同步的功能与限制
image.png

三、异步同步总体流程
流程说明:
1.源库正常处理业务,产生 Redo 日志;
2.源库将 Redo 日志写入本地联机 Redo 日志文件,本地归档日志刷盘(另:实时归档是在 Redo 写入联机日志文件之前,先通过 MAL 发到备库,收到备库确认后才写联机日志文件;即时归档是先写入联机日志文件,再通过 MAL 发送到备库);
3.定时器(TIMER_INI = 1 时生效)按配置周期触发;
4.异步归档线程启动,根据异步备库的 KEEP LSN 信息扫描本地归档目录,获取待发送的 Redo 日志(断点续传,只发备库缺少的部分);
5.判断是否配置了延时同步(ARCH_SEND_DELAY):
1)配置了:只发送 N 分钟前产生的日志;
2)未配置:直接发送新产生的日志。
6.通过 MAL 系统将 RLOG_PKG 发送到异步备库。主库不等待备库处理结果,用户提交请求在本机早已完成;
7.异步备库收到 RLOG_PKG 后先校验是否合法:
1)校验通过:归档日志刷盘,RLOG_PKG 写入本地归档 .log 文件,然后加入 Apply 队列,启动 Redo 日志重演;
2)校验失败:响应失败,归档状态置为 Invalid,等待下次定时器触发重试。
8.重演完成后,异步备库数据与源库保持同步,通常存在较大延迟。
流程特点:
1.定时器驱动、批量发送,日志发送存在周期性延迟;
2.主库性能不受备库影响,事务提交时零等待;
3.异步备库与主库的数据同步存在延迟,非严格一致,不能保证事务一致性,仅能保证最终一致性;
4.归档失败不触发 Suspend,只置 Invalid 并自动重试,对业务影响最小;
5.通过 RPO 换取主库性能与部署灵活性,适合容灾等级要求不高的场景。
流程图:
异步同步.png

四、关键机制
异步归档能够稳定运行并支持断点补齐与误操作缓冲,依赖三个相互配合的核心机制:定时器驱动发送、KEEP LSN 断点续传与延时同步。
(一)定时器驱动发送
异步归档完全由定时器驱动,三个配置缺一不可:
1.dm.ini 中 TIMER_INI = 1(打开定时器功能);
2.dmtimer.ini 中存在归档定时器(如 RT_TIMER),其中 FREQ_MINUTE_INTERVAL 决定触发周期;
3.dmarch.ini 中 ASYNC 归档段的 ARCH_TIMER_NAME 与 dmtimer.ini 段名完全一致。
(二)KEEP LSN 断点续传
异步备库会将已接收日志的 LSN 信息(KEEP LSN)反馈给源库。源库每次定时触发时,从备库 KEEP LSN 对应位置之后开始扫描本地归档目录,只发送备库尚缺少的日志,避免重复发送。网络中断恢复后,只要本地归档日志还在保留期内,就能自动补齐,无需重建备库。
(三)延时同步(ARCH_SEND_DELAY)
配置延时后,源库只发送 N 分钟前产生的日志。用途是防误操作缓冲:误删除表等操作发生后,在延迟窗口内异步备库尚未重演该日志,可从备库导出被误删数据。延迟时长按业务能接受的误操作发现时间设定,常见为几十分钟到数小时。

五、配置要点
涉及的配置文件:
image.png
(一)关键配置示例
dmarch.ini(主库与实时备库都要配,保证切换后新主库仍能向异步备库发送):
dmarch.ini 配置示例
image.png

dmtimer.ini:
image.png
(二)检验 SQL 与环境验证
检验 SQL:
image.png

image.png

image.png

image.png

image.png

image.png

监视器查看集群状态:
image.png

六、小结
异步数据同步以“定时器驱动、批量发送、断点续传”为核心,用 RPO>0 换取主库性能与部署灵活性:主库提交零等待,归档失败仅置 Invalid 自动重试,对业务影响最小;配合延时同步还能充当误操作缓冲区。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服