本文于 2 天前发布,最后更新于 2 天前
一、简单概述
dm_svc.conf 是DM的客户端配置文件。
- 包含了 DM 各接口和客户端工具所需要配置的一些参数。
- 必须和接口/客户端工具位于同一台机器上才能生效。
- dm_svc.conf 的工作目录默认的是固定的,不能改变。使用默认位置时,用户如果需要将其修改并拷贝到其他客户端机器上,也必须位于相同的目录中。
- 修改文件位置:可设置操作系统环境变量 DM_SVC_PATH 来修改 dm_svc.conf 文件路径,或者在jdbc的url中指定dmsvcconf来指定文件位置。
dm_svc.conf 的默认工作目录,不同平台的生成目录有所不同。
- 32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32 目录;
- 64 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\system32 目录;
- 32 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\SysWOW64 目录;
- 在 Linux 平台下,此文件位于/etc 目录。
二、主要参数
配置项 | 缺省值 | 描述 |
服务名 | 无 | 接服务名,参数值格式为IP[:PORT],IP[:PORT],... |
TIME_ZONE | 操作系统当前时区 | 当前数据库服务器使的语,会影响帮助信息错误和提示信息。持的选项为:CN(表示中)和 EN(表示英)。可以不指定,若不指定,系统会读取操作系统信息获得语信息,建议有需要才指定。 |
LOGIN_MODE | 4 | 指定优先登录的服务器模式。0:优先连接 PRIMARY模式的库,NORMAL 模式次之,最后选择 STANTBY模式;1:只连接主库;2:只连接备库;3:优先连接STANDBY 模式的库,PRIMARY 模式次之,最后选择NORMAL 模式;4:优先连接NORMAL 模式的库,PRIMARY 模式次之,最后选择 STANDBY模式。 |
LANGUAGE | 操作系统语言 | 当前数据库服务器使用的语言,会影响帮助信息错误和提示信息。支持的选项为:CN(表示中文)和 EN(表示英文)。可以不指定,若不指定,系统会读取操作系统信息获得语言信息,建议有需要才指定。 |
SWITCH_INTERVAL | 1000 | 在服务器之间切换的时间间隔,单位为毫秒,有效值范围 1~9223372036854775807 |
SWITCH_TIMES | 1 | 指定自动重连次数。如果无法成功连接到单节点数据库,则按照SWITCH_TIMES指定次数尝试自动重连。如果无法成功连接到数据库服务名,则按照SWITCH_TIMES指定的次数遍历服务名中库列表,遍历到活动的数据库则自动重连。有效值范围1~9223372036854775807 |
CHAR_CODE | 操作系统编码格式 | 客户端使用的编码格式,会影响帮助信息和错误提示信息,要与客户端使用的编码格式一致。支持的选项为: PG_UTF8(表示 UTF8 编码); PG_GBK/PG_GB18030(两者都表示 GBK 编码); PG_BIG5(表示 BIG5 编码); |
KEYWORDS | 无 | 标识用户关键字,所有在列表中的字符串,如果以单词的形式出现在SQL语句中,则这个单词会被加上双引号。 该参数主要用来解决用户需要使用 DM8 中的保留字作为对象名使用的状况。 |
AUTO_RECONNECT | 0 | 连接发生异常或一些特殊场景下连接处理策略。 0:关闭连接; 1:当连接发生异常时自动切换到其他库,无论切换成功还是失败都会抛一个SQLEXCEPTION,用于通知上层应用进行事务执行失败时的相关处理;2:配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上 |
注意:LOGIN_MODE在早期默认值为0,后调整为4。
三、高可用示例
- 主备集群
- IP分别为192.168.10.1和192.168.10.2
- 端口均为5236
(1)配置dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
dm=(192.168.10.1:5236,192.168.10.2:5236)
[dm]
login_mode=(1)
(2)配置URL连接串
jdbc:dm://dm
(3)验证测试连接即可
总结:
为保证集群在出故障时能够正常切换,应连接时采服务名式进连接,将连接串中的IP改成服务名。配置在应服务器上的/etc/dm_svc.conf文件中,如下:
TIME_ZONE=(480)
LANGUAGE=(cn)
DM=(主节点IP:端口, 备节点IP:端口)
[DM]
LOGIN_MODE=(1)
SWITCH_TIME=(300)
SWITCH_INTERVAL=(200)
应用连接配置
jdbc.driver=dm.jdbc.driver.DmDriver
jdbc.url=jdbc:dm://DM
jdbc.username=TEST
jdbc.password=TEST
另附
(1)自定义dm_svc.conf路径
在JDBC的URL连接串中,增加属性dmsvcconf,直接指定自定义路径。
例如:
jdbc:dm://dm_server?dmsvcconf=/home/dmdba/dm_svc.conf
(2)直接把服务名写到URL连接串中
jdbc:dm://dm_server?dm_server=(192.168.0.1:32141,192.168.0.2:32142)&loginMode=1&doSwitch=1&switchTimes=2000
(3)测试本地配置的dm_svc.conf文件是否无误并生效
./disql SYSDBA/SYSDBA@localhost:5236 --IP加端口号访问数据库
./disql SYSDBA/SYSDBA@服务名 --服务名访问数据库
(4)集群监视器的语言问题
监视器输出中文还是英文与监视器所在服务器上是否配置 /etc/dm_svc.conf 有关。
LANGUAGE=(EN)
LANGUAGE=(ZH)