本文于 116 天前发布,最后更新于 8 天前
一、简单概述
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)