前言
读写分离集群是达梦数据库在主备集群基础上提供的一种高可用与负载均衡解决方案。与主备集群相比,读写分离集群不仅实现了数据实时同步和故障自动切换,还支持将读事务自动分发到备库执行,从而有效分担主库压力,提升系统整体吞吐量。
本文基于已搭建完成的两节点主备集群,进一步配置读写分离集群,验证备机数据同步及读写事务分发功能。
一、读写分离集群与主备集群的差异
对比维度 主备集群 读写分离集群
设计目标 高可用、容灾 高性能、负载均衡
备库功能 仅同步数据 同步数据 + 承担读查询
事务分发 无 自动分发读写事务
归档类型 实时归档(REALTIME)即时归档(TIMELY)亦可配置REALTIME
应用配置 连接主库即可 需配置 dm_svc.conf
二、环境准备
本文基于已搭建的两节点主备集群进行配置,环境信息如下:
项目 主机 备机
IP地址 192.168.74.131 192.168.74.132
实例名 DMSERVER1 DMSERVER2
数据库端口 5236 5236
安装目录 /dm8 /dm8
数据目录 /dm8/data /dm8/data
三、配置读写事务分发
3.1 dm_svc.conf 配置文件说明
dm_svc.conf是达梦数据库实现读写分离的核心配置文件。在Linux平台下,此文件默认位于/etc目录,必须和接口/客户端工具位于同一台机器上才能生效。
3.2 配置读写分发比例
在主机创建配置文件:
添加以下内容:
全局配置
TIME_ZONE=(480)
LANGUAGE=(cn)
服务名配置
DMRW=(192.168.74.131:5236,192.168.74.132:5236)
[DMRW]
LOGIN_MODE=(1)
RW_SEPARATE=(1)
RW_PERCENT=(30)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000)
参数说明:
| 参数 | 值 | 含义 |
|---|---|---|
LOGIN_MODE |
1 | 非强制登录模式 |
RW_SEPARATE |
1 | 开启读写分离 |
RW_PERCENT |
30 | 主库承担 30% 读请求,备库承担 70% |
SWITCH_TIMES |
60 | 故障切换重试次数 |
SWITCH_INTERVAL |
1000 | 切换间隔(毫秒) |
四、验证读写分离集群
4.1 验证数据同步
在主库插入数据:
cd /dm8/bin
./disql SYSDBA/Dameng_123@localhost:5236
CREATE TABLE test_rw (id INT, name VARCHAR(50), create_time DATE);
INSERT INTO test_rw VALUES (1, ‘读写分离测试数据’, SYSDATE);
COMMIT;
在备库查询:
cd /dm8/bin
./disql SYSDBA/Dameng_123@localhost:5236
SELECT * FROM test_rw;
如果备库能查询到相同数据,说明主备同步正常。
4.2 验证读写分离生效
使用 dm_svc.conf 配置的服务名连接数据库:
./disql SYSDBA/Dameng_123@DMRW
查询当前连接的实例:
SELECT INSTANCE_NAME FROM V$INSTANCE;
多次执行查询,观察连接是否按配置比例分发到主备库。
五、总结
本文基于已搭建的两节点主备集群,完成了读写分离集群的配置,验证了备库数据同步及读写事务自动分发功能。结果表明,读写分离集群能有效将读查询分流至备库执行,在不改变应用代码的前提下,达到降低主库负载、提升系统并发能力的效果。
文章
阅读量
获赞
