达梦提供了服务名访问数据库集群,以此避免集群切换连接到备库的情况发生,集群都建议以服务名方式连接,将服务名配置在应用服务器上。
需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:
32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
在 Linux 平台下,此文件位于/etc 目录。
文件内容:
# 以#开头的行表示是注释
# 全局配置区
DMRW=(192.168.12.194:5236,192.168.12.219:5236)
TIME_ZONE=(+480) #表示+8:00 时区
LOGIN_ENCRYPT=(0)
DIRECT=(Y)
# 服务配置区
[DMRW]
LOGIN_MODE=(1) #只连主库
SWITCH_TIME=(3) #在服务器之间切换的次数
SWITCH_INTERVAL=(10) #在服务器之间切换的时间间隔,单位为毫秒
RW_SEPARATE=(1)#启用读写分离
RW_PERCENT=(25)#读事务分发到主库的比例
RW_SEPARATE=(1)#启用读写分离
RW_PERCENT=(25)#读事务分发到主库的比例
这两行相关配置是读写分离集群才要的,主备不建议配置,单纯的主备模式加上这个配置可能会导致主备查询结果不一致,当然,如果对事务一致性要求不那么高允许有延迟,也可以加上
客户端程序连接数据库时,需要指定 IP 端口处替换为服务名即可,例如:disql SYSDBA/'"密码"'@DMRW。jdbc的url为:jdbc:dm://DMRW
注意:
1)当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。
2)请把该文件路径授予666权限。
上面服务名配置为字符DMRW,使用该字符即可连接数据库
实际上,服务名不止能写成字符格式,服务名也是支持写成其他格式的,例如ip,可以对标RAC集群的虚拟vip,还可以写成数字格式,纯符号格式等
ip格式:
数字格式:
符号格式: