故障自动重连

当用户连接到DM共享存储集群时,实际上是连接到集群中的一个实例,用户的所有增删改查操作都是由该实例完成的。但是如果该实例出现故障,那么用户连接会被转移到其他正常实例。而这种转移对用户是透明的,用户的增删改查继续返回正确结果,感觉不到异常。这种功能就是故障自动重连。

实现故障自动重连的前提条件是在配置DM共享存储集群的时候,必须配置连接服务名。

12.1 配置服务名(DM_SVC.CONF)

配置DMDSC集群,一般要求配置连接服务名,以实现故障自动重连。连接服务名可以在DM提供的JDBC、DPI等接口中使用,连接数据库时指定连接服务名,接口会随机选择一个IP进行连接,如果连接不成功或者服务器状态不正确,则顺序获取下一个IP进行连接,直至连接成功或者遍历了所有IP。

可以通过编辑dm_svc.conf文件,配置连接服务名。dm_svc.conf配置文件在DM安装时生成,Windows平台下位于%SystemRoot%\system32目录,Linux平台下位于/etc目录。

连接服务名格式:

SERVERNAME=(IP[:PORT],IP[:PORT],......)

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

  • SERVERNAME

连接服务名,用户通过连接服务名访问数据库。

  • IP

数据库所在的IP地址,如果是IPv6地址,为了区分端口,需要用[]封闭IP地址。

  • PORT

数据库使用的TCP连接端口,可选配置,不配置则使用连接上指定的端口。

  • SWITCH_TIME

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

  • SWITCH_INTERVAL

表示在服务器之间切换的时间间隔,单位为毫秒,有效值范围1~9223372036854775807,默认值为200。

例如,配置一个名为dmdsc_svc的连接服务名,使用dmdsc_svc连接DMDSC集群中的数据库,即可实现故障自动重连。

dmdsc_svc=(10.0.2.101:5236,10.0.2.102:5237)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(1000)

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

12.2 体验故障自动重连

基于11.2节成功架构的共享存储集群系统,下面用一个简单的例子来体验故障自动重连。

  1. 连接到dsc
DIsql sysdba/sysdba@dmdsc_svc

2.确认当前用户已经连接到的节点实例

SQL> select name from v$instance;
行号 NAME
---------- ------- -------
1 DSC0

用户当前连接到节点0上DSC0实例。不要退出这个会话,第4步还是在这个会话中执行。

3.关闭DSC0实例,或者将节点0所在的这台主机关机。

4.等待几秒后,再次执行这条语句,还在会话1中执行,服务器会返回提示已切换当前连接。

SQL> select name from v$instance;
[-70065]:连接异常,切换当前连接成功.

5.在会话1中再次执行这条语句,可执行成功,可以看到会话已切换到DSC1实例。

SQL> select name from v$instance;
行号 NAME
---------- ------ --------
1 DSC1
微信扫码
分享文档
扫一扫
联系客服