注册
达梦实时主备与读写分离集群的区别
技术分享/ 文章详情 /

达梦实时主备与读写分离集群的区别

DM_020153 2026/05/09 248 0 0

达梦实时主备与读写分离集群的区别

一、实时主备集群

实时主备集群由一个主库和一个或多个配置了实时归档(Realtime)的备库组成,其核心设计目标是保障数据库可用性、提高数据安全性。
在实时主备架构中:
• 主库:提供完整的数据库读写功能
• 备库:提供只读服务,通过重演Redo日志与主库保持数据同步
当主库出现故障时,备库可在重演完所有Redo日志后切换为主库。

二、读写分离集群

读写分离集群由一个主库和一个或多个配置了即时归档(Timely)或实时归档(Realtime)的备库组成,其设计目标是在保障数据库可用性的基础上,实现读写操作的自动分离,提升系统吞吐量。
读写分离的核心思路是:利用备库只读的特性,配合达梦JDBC、DPI等接口,将只读操作自动分流到备库执行,从而减轻主库负载。

三、核心差异

读写分离集群在驱动层内置了请求的自动分流机制,而实时主备通常需要客户端自行判断并路由读写请求;且对于读写分离集群而言,业务必须额外考虑主备之间是否需要强一致性,并根据自身需求调整同步参数(如ARCH_WAIT_APPLY),而实时主备则无需操心这个问题

四、读写分离机制的配置实现

dm_svc.conf配置示例:

开启读写分离
RW_SEPARATE = 1
可选:主库承担的读请求比例(0-100),其余读请求分发至备库
RW_PERCENT = 30

五、ARCH_WAIT_APPLY参数调整

实际业务中,实时主备与读写分离集群对事务一致性的处理逻辑截然不同。
• 实时主备架构:所有读写请求均发往主库,业务无需关心主备间的数据同步状态,主库自身的事务特性天然保障了数据一致性,因此基本不需要考虑主备事务一致性问题。
• 读写分离集群:读请求被驱动层自动分发到备库,而备库通过重演Redo日志与主库保持同步可能存在延迟,这就带来了"写后读"不一致的风险——用户刚提交的数据可能因备库尚未同步而查询不到。
因此,业务方必须根据自身场景调整ARCH_WAIT_APPLY参数:

参数值 适用场景 行为说明 代价
1 需要查询备机最新数据的强一致性业务 主库等待备库重演完成后再响应提交,彻底消除写后读不一致 性能衰减
0 可容忍备库短暂延迟的业务 主库不等待备库重演即响应提交 备库读可能读到旧数据,换取更高吞吐量

https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服