栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

达梦服务名配置与使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

达梦服务名配置与使用

1配置

DM 安装时生成一个配置文件 dm_svc.conf,不同的平台所在目录有所不同。

1

32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%/system32目录;

2

64 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%/system32目录;

3

32 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%/SysWOW64目录;

4

在 Linux 平台下,此文件位于/etc 目录。

dm_svc.conf 文件中常用配置项目说明:

参数

简述

SERVERNAME

连接服务名,参数值格式为 IP[:PORT],IP[:PORT],......

TIME_ZONE

指明客户端的默认时区,设置范围为:-779~840M,如 60 对 应+1:00 时区  

LANGUAGE

当前数据库服务器使用的语言,会影响帮助信息错误和提示信息。支持的选项为:CN(表示中文)和 EN(表示英文)。可以不指定,若不指定,系统会读取操作系统信息获得语言信息,建议有需要才指定。

LOGIN_MODE

指定优先登录的服务器模式。0:优先连接 Primary 模式的库,Normal 模式次之,最后选择 Stantby 模式;1:只连接主库;2:只连接备库;3:优先连接 Standby 模式 的库,Primary 模式次之,最后选择Normal模式;4:优先连接Normal模式的库,Primary

模式次之,最后选择 Standby 模式。默认值为 0

SWITCH_TIME

检测到数据库实例故障时,接口在服务器之间切换的次数;超过设置次数没有连接到有效数据库时,断开连接并报错。有效值范围 1~9223372036854775807,默认值为 3。

SWITCH_INTERVAL

表示在服务器之间切换的时间间隔 ,单位为毫秒,有效值范围

1~9223372036854775807,默认值为 200。

RW_SEPARATE

指定是否启用读写分离。0 表示不启用读写分离;1 表示启用读写分离,默认值为 0。

RW_PERCENT

启用读写分离时,读写分离的分发比例,有效值范围 0~100,默认值为 25。 例如,配置一个名为 dw_svc 的连接服务名,使用 dw_svc 连接数据守护中的数据库,即可实现故障自动重连。

EP_SELECTOR

连接数据库时采用何种模型建立连接。0:依次选取列表中的不同节点建立连接,使得所有连接均匀地分布在各个节点上;1:选择列表中最前面的节点建立连接,只有当前节点无法建立连接时才会选择下一个节点进行连接 。

AUTO_RECONNECT

连接发生异常或一些特殊场景下连接处理策略。0:关闭连接;1:当连接发生异常时自动切换到其他库,无论切换成功还是失败都会抛一个 SQLEXCEPTION,用于通知上层应用进行事务执行失败时的相关处理;2:配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上。

关于 dm_svc.conf 的详细设置,请参考《 DM8 系统管理员手册》2.1.1.4

dm_svc.conf 章节。

dm_svc.conf 配置文件的内容分为全局配置区和服务配置区。全局配置区在前,服务配置区在后,以“[服务名]”开头,可配置除了服务名外的所有配置项。服务配置区中的配置优先级高于全局配置区。

(1)下面以一个普通环境中 dm_svc.conf 为例:

# 以#开头的行表示是注释

# 全局配置区

NORMAL=(192.168.0.1:5000,192.168.0.2:5236)

Data_Watch=(192.168.0.3:5236,192.168.0.4:4350)

TIME_ZONE=(+480) #表示+8:00 时区

LANGUAGE=(cn) #中文

# 服务配置区

# 常规环境,两个没有关系的 IP

[NORMAL]

LOGIN_MODE=(4)

SWITCH_TIMES=(3)

SWITCH_INTERVAL=(100)

# 服务配置区

# 数据守护环境,一主一备

[Data_Watch]

LOGIN_MODE=(2)

SWITCH_TIMES=(3)

SWITCH_INTERVAL=(100)

(2)下面以 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 时区

LANGUAGE=(cn) #中文

#DMDSC1 服务配置区

#以下配置是每次定向连接 DMDSC1 服务器名的的第一个服务,当服务器故障后,尝试 60 次,间隔 1s 的节奏一直连接第一个服务,若连接不上,在循环下一个服务,连接上之后进行使用。假设 2 号服务 (192.168.1.3)先起来,1 号服务(192.168.1.1)后起来。因为 AUTO_RECONNECT=(1),所以客户端连接在 2 号的当前连接不会切回 1 号服务。

[DMDSC1]

SWITCH_TIMES=(60)

SWITCH_INTERVAL=(1000)

EP_SELECTOR=(1)

AUTO_RECONNECT=(1)

#DMDSC2 服务配置区

#以下配置是每次定向连接 DMDSC2 服务器名的的第一个服务,当服务器故障后,尝试 60 次,间隔1s 的节奏一直连接第一个服务,若连接不上,在循环下一个服务,连接上之后进行使用。假设 2 号服务(192.168.1.7)先起来,1 号服务(192.168.1.5)后起来。因为 AUTO_RECONNECT=(2),所以客户端连接在 2 号的当前连接会再切回 1 号服务。

[DMDSC2]

CLUSTER=(DSC)

SWITCH_TIMES=(60)

SWITCH_INTERVAL=(1000)

EP_SELECTOR=(1)

AUTO_RECONNECT=(2)

2使用

以下在Windows系统上使用java语言测试连接集群服务名

2.1 dm_svc.conf 配置文件

Windows 平台 dm_svc.conf 文件位 %SystemRoot%system32 目录下:

打开文件编辑以下内容:

TIME_ZONE=(480)

LANGUAGE=(cn)

#192.168.117.128为主库,192.168.117.129为备库

dw_svc=(192.168.117.128:5233,192.168.117.129:5233)

LOGIN_MODE=(0)  #0:优先连接 Primary 模式的库,最后选择 Stantby 模式;

SWITCH_TIMES=(3)

SWITCH_INTERVAL=(100)

 

2.2 java测试连接

Java代码:

(1)当dm_svc.conf文件中,LOGIN_MODE=(0)时(优先连接主库,最后选择备库)

Java执行查询tab1表,结果:

(2)当dm_svc.conf文件中的LOGIN_MODE=(1)时(只连接主库)

修改java代码,向tab1表插入一条数据:

成功插入一条数据,返回查询结果:

(3)当dm_svc.conf文件中的LOGIN_MODE=(2)时(只连接备库)

修改java代码,向tab1表插入一条数据:

执行报错:

原因:备库模式下不支持对非临时表或含有lob类型列的表进行增删改操作

 

2.3 故障切换

测试主备节点故障后,服务配置是否能自动切换数据库,并提供正常服务。

kill掉主库实例进程

 查看监视器,备库已切换为主库

将dm_svc.conf文件中的LOGIN_MODE设为(0) 

Java 测试数据的添加和查询

 成功插入一条数据,返回查询结果:

 

结论:当发生节点故障时,会自动切换数据库,继续提供正常服务。

达梦学习社区地址:https://eco.dameng.com

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841108.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号