达梦数据库-服务名配置dm_svc.conf
例1: dm_svc.conf
例如 数据守护环境(实时主备集群),配置一个名为 dm_time 的连接服务名,使用 dm_time 连接数据守护中的数据库,即可实现故障自动重连。需要说明的是,如果对 dm_svc.conf 的配置项进行了修改,需要重启客户端程序,修改的配置才能生效。
TIME_ZONE=(480)LANGUAGE=(cn)dm_test=(172.16.10.81:15236,172.16.10.82:25236)LOGIN_MODE=(1) --只连接主库SWITCH_TIMES=(3) --以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数SWITCH_INTERVAL=(100) --在服务器之间切换的时间间隔,单位为毫秒例2: dm_svc.conf
例如
1. DM_TIME数据守护环境(实时主备集群)
2. DM_RW数据守护读写分离集群
3. DM_DSC共享存储集群
分别使用
DM_TIME
DM_RW
DM_DSC服务名
连接各个集群的数据库,
即可实现故障自动重连。需要说明的是,如果对 dm_svc.conf 的配置项进行了修改,需要重启客户端程序,修
改的配置才能生效。
TIME_ZONE=(480)LANGUAGE=(cn)#全局配置区DM_TIME=(172.16.10.81:15236,172.16.10.82:25236)DM_RW=(172.16.10.83:15236,172.16.10.84:25236)DM_DSC=(172.16.10.85:5236,172.16.10.86:5236)
#服务配置区[DM_TIME]LOGIN_MODE =(1) --只连接主库SWITCH_TIME=(60) --以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数SWITCH_INTERVAL=(1000) --在服务器之间切换的时间间隔,单位为毫秒
[DM_RW]LOGIN_MODE =(1) --只连接主库RW_SEPARATE=(1) --开启读写分离RW_PERCENT=(25) --读写分离分发比例,取值范围(0~100)SWITCH_TIME=(60)SWITCH_INTERVAL=(1000)
[DM_DSC]LOGIN_MODE =(4) --优先连接NORMAL 模式的库,PRIMARY 模式次之,最后选择 STANDBY模式SWITCH_TIME=(60)SWITCH_INTERVAL=(1000)EP_SELECTOR=(0) --0:依次选取列表中的不同节点建立连接,使得所有连接均匀地分布在各个节点上;AUTO_RECONNECT=(1) --当连接发生异常时自动切换到其他库,无论切换成功还是失败都会抛一个SQLEXCEPTION,用于通知上层应用进行事务执行失败时的相关处理;需要说明的是,如果对 dm_svc.conf 的配置项进行了修改,需要重启客户端工具,修改的配置才能生效。另外,如果 dm_svc.conf 配置文件中包含中文,则必须保证该配置文件的编码与客户端编码一致。
例3
DSC 场景中 dm_svc.conf
# 全局配置区DMDSC1=(192.168.1.1:5236,192.168.1.3:5236)DMDSC2=(192.168.1.5:5236,192.168.1.7:5236)TIME_ZONE=(+480) #表示+8:00 时区
#DMDSC1 服务配置区#以下配置是每次定向连接 DMDSC1 服务名的第一个服务(192.168.1.1:5236),当服务器故障后,以间隔 1000 毫秒的节奏尝试连接第一个服务 60 次,若连接成功则进行使用,若连接失败则连接下一个服务(192.168.1.3:5236)。#假设 2 号服务先连接成功,由于 AUTO_RECONNECT=(1),因此当 1 号服务可以正常连接后当前连接也不会切换到 1 号服务。
[DMDSC1]LOGIN_MODE=(4) #若是 DSC 主+单机备,注意这里需要配置成 0SWITCH_TIMES=(60)SWITCH_INTERVAL=(1000)EP_SELECTOR=(1)AUTO_RECONNECT=(1)
#DMDSC2 服务配置区#以下配置是每次定向连接 DMDSC2 服务名的第一个服务(192.168.1.5:5236),当服务器故障后,以间隔 1000 毫秒的节奏尝试连接第一个服务 60 次,若连接成功则进行使用,若连接失败则连接下一个服务(192.168.1.7:5236)。#假设 2 号服务先连接成功,由于 AUTO_RECONNECT=(2),因此当 1 号服务可以正常连接后当前连接会切换到 1 号服务。
[DMDSC2]CLUSTER=(DSC)LOGIN_MODE=(4) #若是 DSC 主+单机备,注意这里需要配置成 0SWITCH_TIMES=(60)SWITCH_INTERVAL=(1000)EP_SELECTOR=(1) --选择列表中最前面的节点建立连接,只有当前节点无法建立连接时才会选择下一个节点进行连接AUTO_RECONNECT=(2) --配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上
常用参数解析
配置项 | 缺省值 | 简述 |
LOGIN_MODE | 4 | 指定优先登录的服务器模式。0:优先连接 PRIMARY 模式的库,NORMAL 模式次之,最后选择 STANTBY 模式;1:只连接 主库;2:只连接备库;3:优先连接 STANDBY 模式的库, PRIMARY 模式次之,最后选择 NORMAL 模式;4:优先连接 NORMAL 模式的库,PRIMARY 模式次之,最后选择 STANDBY 模式 |
SWITCH_TIMES | 1 | 以服务名连接数据库时,若未找到符合条件的库成功建立连 接,将尝试遍历服务名中库列表的次数。有效值范围 1~9223372036854775807 |
SWITCH_INTERVAL | 200 | 在服务器之间切换的时间间隔,单位为毫秒,有效值范围 1~9223372036854775807 |
RW_SEPARATE | 0 | 是否启用读写分离。0:不启用;1:启用;2:启用,备库由 客户端进行选择,且只会选择服务名中配置的节点 |
RW_PERCENT | 25 | 读写分离分发比例,有效值范围 0~100 |
EP_SELECTOR | 0 | 连接数据库时采用何种模型建立连接。0:依次选取列表中的 不同节点建立连接,使得所有连接均匀地分布在各个节点 上;1:选择列表中最前面的节点建立连接,只有当前节点无 法建立连接时才会选择下一个节点进行连接 |
AUTO_RECONNECT | 0 | 连接发生异常或一些特殊场景下连接处理策略。0:关闭连接;1:当连接发生异常时自动切换到其他库,无论切换成功还是失败都会抛一个 SQLEXCEPTION,用于通知上层应用进行事务执行失败时的相关处理;2:配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上 |
服务名 | 无 | 用于连接的服务名,参数值格式为: 服务名=(IP[:PORT],IP[:PORT],......)。IP 为数据库所在的 IP 地址,如果是 IPV6 地址,为了区分端口,需要用[]封闭 IP 地址。PORT 为数据库使用的 TCP 连接端口,可选配置,不配置则使用默认的端口 注:若配置服务名时没有指定端口,后续在工具或接口的命令 中使用服务名时,在服务名后增加的“:XXXX”端口号会被忽 略,这样指定的端口号是无效的 |
TIME_ZONE | 当前时区 | 指明客户端的默认时区,设置范围为:-779~840M,如 60 对应+1:00 时区 |
LANGUAGE | 操作系统语言 | 当前数据库服务器使用的语言,会影响帮助信息错误和提示信 息。支持的选项为:CN(表示中文)和 EN(表示英文)。可以 不指定,若不指定,系统会读取操作系统信息获得语言信息, 建议有需要才指定。 |




