注册

spring boot 使用 主备集群配置dm_svc.conf 连接配置问题

三儿 2023/12/25 1417 4 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:麒麟
【CPU】:鲲鹏
【问题描述】*:

环境

数据库一主一从。
主:192.168.83.101 PRIMARY模式
从:192.168.83.102 STANDBY模式

dm_svc.conf配置

dm_svc.conf文件 已经放到 /etc/ 下,文件配置如下:

TIME_ZONE=(480) LANGUAGE=(cn) MYDW=(192.168.83.101:5236,192.168.83.102:5236) [MYDW] # 连接重试次数 SWITCH_TIMES=(3) # 服务器之间切换的时间间隔,单位为毫秒 SWITCH_INTERVAL=(100) # 表示连接数据库时采用何种模型建立连接, # 0:依次选取列表中的不同节点建立连接,使得所有连接均匀地分布在各个节点上; # 1:选择列表中最前面的节点建立连接,只有当前节点无法建# 设置连接字符集 EP_SELECTOR=(1) # 连接发生异常或一些特殊场景下连接处理策略. # 0:关闭连接, # 1:当连接发生异常时自动切换到其他库,无论切换成功还是失败都会抛一个 SQLEXCEPTION,用于通知上层应用进行事务执行失败时的相关处理; # 2 配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上 AUTO_RECONNECT=(2) # 0:优先连接 PRIMARY 模式的库,NORMAL 模式次之,最后选择 STANTBY 模式 # 1:只连接主库 # 2:只连接备库; # 3:优先连接 STANDBY 模式的库,PRIMARY 模式次之,最后选择 NORMAL 模式 # 4:优先连接 NORMAL 模式的库,PRIMARY 模式次之,最后选择 STANDBY 模式。默认值。 LOGIN_MODE=(0) # PG_UTF8 : UTF-8 # PG_GBK/PG_GB18030 :两者都表示 GBK # PG_BIG5: BIG5 # PG_ISO_8859_9: ISO88599立连接时才会选择下一个节点进行连接。 # PG_EUC_JP:EUC_JP # PG_EUC_KR: EUC_KR # PG_KOI8R: KOI8R # PG_ISO_8859_1: ISO_8859_1 CHAR_CODE=(PG_UTF8) # 是否开启读写分离。 # 0. 关闭,默认。 # 1. 开启 # 2. 开启, 从节点由客户端进行选择,且只会选择服务名中配置的节点 RW_SEPARATE=(0) # 读写分离分发比例。0-100.默认25 RW_PERCENT=(25)

spring boot 连接配置

spring.datasource.url=jdbc:dm://MYDW/ZHANG2018

现象

连接配置没有问题,能正常访问连接到数据库,但是因为数据库出现异常导致主从发生改变。
改变后的主从变成了如下:
从:192.168.83.101 STANDBY模式(原来的主节点)
主:192.168.83.102 PRIMARY模式(原来的从节点)

但是,java程序操作数据库的时候提示异常:
dm.jdbc.driver.DMException: 试图在STANDBY模式下,修改用户库
如下图:
1703495926649.png

明显就是springboot连接到的还是 192.168.83.101 节点,此时该192.168.83.101已经是从节点了,并不会自动切换连接到新的主节点192.168.83.102上。

问题

  1. 上面的现象是什么原因?
  2. 如何才能实时让spring boot的数据库连接能连上新的主库?
回答 0
暂无回答
扫一扫
联系客服