达梦读写分离部署
2026/6/13 7:53:47 网站建设 项目流程

1、简介

目标:高并发的事务性系统中,读多写少,将读事务转移到备机执行,减少单节点的并发压力

系统事务特征:

纯读操作的事务全部在备机执行
纯写操作的事务全部在主机执行
既有读又有写的事务,从写事务开始全部再主机执行。
读写分离集群和主备集群的主要区别:

适用场景不同:读写分离聚焦负载均衡,主备聚焦容灾备份
归档方式不同:读写分离是Timely, 主备是Realtime
应用访问连接串不同:读写分离:jdbc:dm://DM_RWC?rwSeparate=1&rwPercent=25; 数据守护:jdbc:dm://DM_DW

2、配置方式

前提:搭建好主备集群

基于主备集群修改

归档方式dmarch.ini配置文件:需要重启数据库才生效

将ARCH_TYPE 由REALTIME(实时主备) 改为 TIMELY(读写分离)

配置文件dm_svc.conf

它包含了达梦各接口和客户端工具所需要配置的一些参数。通过它可以实现达梦各种集群的读写分离和均衡负载,且必须和接口/客户端工具位于同一台机器上才能生效。因此在安装监视器的服务器下配置该文件。

一般安装DM数据库时会生成,linux 服务器上该文件存在目录/etc下面。如果/etc下没有,则手动创建一个。

dm_svc.conf 配置文件的内容分为全局配置区和服务配置区。全局配置区在前,可配置所有的配置项,服务配置区在后,以“[服务名]”开头,可配置除了服务名外的所有配置项。服务配置区中的配置优先级高于全局配置区(服务配置区的相同配置项会覆盖全局配置区对应的配置项)。

其中服务名的作用时可以再url串中替代IP地址 连接整个集群,可以根据需要,设置成别的名字。

# dm_svc.conf 配置示例

TIME_ZONE=(480)

LANGUAGE=(en)

# 首先定义服务名

dmdw1=(172.20.10.2:5236,172.20.10.4:5236)

[dmdw1]

# 然后配置参数

LOGIN_MODE=(1)

RW_SEPARATE=(1)

RW_PERCENT=(0)

SWITCH_TIME=(60)

SWITCH_INTERVAL=(1000)

参数说明

TIME_ZONE和LANGUAGE分别对应操作系统时区和语言;

LOGIN_MODE:

0-优先连接PRIMARY模式的库, Normal模式次之,最后选择STANDBY模式;
1-只连接主库;
2-只连接备库;
3-优先连接STANDBY模式的库,PRIMARY模式次之,最后选择NORMAL;
4-有限连接NORMAL模式的库,PRIMARY模式次之,最后选择STANDBY模式。
dmdw1=(IP1:5235,IP2:5235)标识一个服务名为dmdw1,把主机和备机都集成到一个服务名字dmdw1,可以在disql登录时使用服务名替换url串中的IP地址,从而连接整个集群;

RW_SEPARATE=1,表示开启读写分离;0-表示不启用, 2-启用,备库由客户端进行选择。

RW_PERCENT=100,0~100表示将只读任务分发给备库的比例,可以根据主备库的实际压力来设定。

SWITCH_TIMES: 表示以服务名连接数据库时,若未找到符合条件的库成功建立连接,将尝试遍历服务名中库列表的次数。

SWITCH_INTERVAL:表示在服务器之间切换的时间间隔,单位为毫秒,有效值范围 1~9223372036854775807。

达梦社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询