dm_svc.conf 是使用达梦数据库时非常重要的配置文件,它包含了达梦各接口和客户端工具所需要配置的一些参数。通过它可以实现达梦各种集群的读写分离和均衡负载,且必须和接口/客户端工具位于同一台机器上才能生效。
初始 dm_svc.conf 文件由达梦安装时自动生成。不同的平台生成目录有所不同,注意相应访问用户需要对该文件有读取权限。
文件位置
32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
在 Linux 平台下,此文件位于 /etc 目录。
1.服务名
用于连接数据库的服务名,参数值格式为:服务名=(IP[:PORT],IP[:PORT],......)
2.TIME_ZONE
指明客户端的默认时区设置范围为,如 60 对应 +1:00 时区,+480 对于东八区
3.KEYWORDS
可以用于屏蔽数据库关键字,如果数据库关键字在 SQL 语句中以单词的形式存在,无法识别需要加上双引号或者可以通过该参数来屏蔽关键字,建议大小写都写入参数中。
例如:KEYWORDS=(versions,VERSIONS,type,TYPE)
4.LOGIN_MODE
指定优先登录的服务器模式
指定优先登录的服务器模式。0:优先连接 PRIMARY 模式的库,NORMAL 模式次之,最后选择 STANTBY 模式;1:只连接主库;2:只连接备库;3:优先连接 STANDBY 模式的库,PRIMARY 模式次之,最后选择 NORMAL 模式;4:优先连接 NORMAL 模式的库,PRIMARY 模式次之,最后选择 STANDBY 模式。
5.SWITCH_TIMES
表示以服务名连接数据库时,若未找到符合条件的库成功建立连接,将尝试遍历服务名中库列表的次数。
6.SWITCH_INTERVAL
表示在服务器之间切换的时间间隔,单位为毫秒
7.RW_SEPARATE
表示是否启用读写分离。0:不启用;1:启用;2:启用
8.RW_PERCENT
表示读写分离分发比例,有效值范围 0~100,主库占所有事物数的比例。
9.EP_SELECTOR
表示连接数据库时采用何种模型建立连接,0:依次选取列表中的不同节点建立连接,使得所有连接均匀地分布在各个节点上,1:选择列表中最前面的节点建立连接,只有当前节点无法建立连接时才会选择下一个节点进行连接。
10.AUTO_RECONNECT
表示连接发生异常或一些特殊场景下连接处理策略。0:关闭连接,1:当连接发生异常时自动切换到其他库,2 配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上
-- 客户端编写配置文件
vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(CN)
DM=(192.168.43.14:5234)
-- 通过服务名登录
./disql SYSDBA/DMdata456@DM
-- 客户端编写配置文件
vi /etc/dm_svc.conf
#填写全部主备实例IP端口,全部节点都写上,不要只写当前主库
DMPS=(192.168.43.4:5236,192.168.43.5:5236)
TIME_ZONE=(480)
LANGUAGE=(CN)
[DMPS]
# 连接优先级:PRIMARY > NORMAL > STANDBY
LOGIN_MODE=(0)
SWITCH_TIMES=(20) #遍历节点最大尝试次数
SWITCH_INTERVAL=(1000) #节点切换等待时间,单位ms
连接,优先主库
./disql SYSDBA/DMdata456@DMPS
-- 修改登录模式为LOGIN_MODE=(3),优先备库连接
./disql SYSDBA/DMdata456@DMPS
-- 客户端编写配置文件
vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DMDSC=(192.168.43.11:6636,192.168.43.12:6637,192.168.43.13:6638)
[DMDSC]
# 节点故障切换参数
SWITCH_TIMES=(10)
SWITCH_INTERVAL=(1000)
# EP_SELECTOR=0:连接轮询分发到各个节点,负载均衡;>0固定优先某个节点
EP_SELECTOR=(0)
# 连接断开自动重连,如果1号服务异常,则连接到2号服务,由于AUTO_RECONNECT=(1),因此当1号服务可以正常连接后当前连接也不会切换到1号服务。
AUTO_RECONNECT=(1)
连接集群
--连接到DSC02服务器
./disql SYSDBA/DMdba_123@DMDSC
-- 关闭DSC02服务
--再次连接,连接到了DSC03服务器
./disql SYSDBA/DMdba_123@DMDSC
达梦数据库技术社区:https://eco.dameng.com
文章
阅读量
获赞
