客户端故障自动重连
在服务器上配置dm_svc.conf文件:
DM=(192.168.0.11:5236,192.168.0.12:5237) #心跳地址+端口
TIME_ZONE=(480) #时区
LANGUAGE=(cn) #语言
[DM] #连接名
CLUSTER=(DSC) #集群类型
SWITCH_TIMES=(1000) #失败重连尝试次数
SWITCH_INTERVAL=(1000) #尝试间隔为1s(单位是ms)
EP_SELECTOR=(1) #连接数据库时采用何种模型建立连接。0:依次选取列表中的不同节点建立连接,使得所有连接均匀地分布在各个节点上;1:选择列表中最前面的节点建立连接,只有当前节点无法建立连接时才会选择下一个节点进行连接
AUTO_RECONNECT=(1) #1:客户端不会再切换为DM1(2:客户端正常后回在切换为DM1)
动态扩展DSC集群节点
注意事项:
DMDSC
集群支持动态扩展节点,每次扩展可以在原有基础上增加一个节点。
动态扩展节点要求当前
DMDSC
集群的所有节点都为
OK
状态,所有
dmserver
实例都处于 OPEN 状态,且可以正常访问。扩展节点过程中,不应该有修改数据库状态或模式的操作。
操作流程:
1、
在
192.168.1.51
机器上使用
DMASMCMD
工具
export
出备份
dmdcr_cfg_bak.ini
./dmasmcmd
Asm> export dcrdisk '/dev/raw/raw1' to '/data/DAMENG/dmdcr_cfg_bak.ini'
2、为新增节点准备日志文件
使用disql登录任意节点执行添加日志文件操作:
①至少两个日志文件,路径必须是SM文件格式,大小参考其余节点;
SQL> alter database add node logfile '+DMLOG/log/dsc2_log01.log' size 256,'+DMLOG/log/dsc2_log02.log' size 256;
②使用dmctlcvt工具将dm.ctl转换为文本文件dmctl.txt,查看dmctl.txt,查看新增节点的日志文件信息是否添加进dm.ctl。
./dmctlcvt TYPE=1 SRC=+DMDATA/data/dsc/dm.ctl DEST=/data/DAMENG/dmctl.txt DCR_INI=/data/DAMENG/dmdcr.ini
③使用dmasmtool工具登录ASM文件系统,也可以看到
新增节点的日志文件。
[bin]# ./dmasmtool DCR_INI=/data/DAMENG/dmdcr.ini
ASM>ls +DMLOG/log
3、为新增节点准备config_path
将192.168.1.51机器/data/DAMENG/dsc0_config目录拷贝到192.168.1.53机器相同目录下,修改名字为/data/DAMENG/dsc2_config。
修改dsc2_config文件夹下的配置文件:
①修改dm.ini
CONFIG_PATH = /data/DAMENG/dsc2_config
instance_name = DM3
②如果打开了归档参数,修改dmarch.ini
4、新建dmdcr.ini配置文件,保存到节点192.168.1.53的/data/DAMENG/目录下面
注意设置dmdcr_seqno为2,修改dm.ini路径。
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/data/DAMENG/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 2
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/data/DAMENG/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/data/DAMENG/dsc2_config/dm.ini dcr_ini=/data/DAMENG/dmdcr.ini
5、修改当前环境的MAL配置文件
直接修改当前环境的dmasvmal.ini文件,添加新增节点的信息,使用DMASM的
所有节点都要配置,内容完全一样,并且将新增信息后的dmasvrmal.ini文件拷贝到节点192.168.1.53的/data/DAMENG目录下。
[MAL_INST3]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.0.13
MAL_PORT = 7238
直接修改dmserver三个实例的dmmal.ini,添加新增节点信息,所有节点都要配置相同内容,保存到各自的dsc_config目录下。
[mal_inst2]
mal_inst_name = DM3
mal_host = 192.168.0.13
mal_port = 9342
后续实例会重新读MAL配置文件,更新内存信息。
6、修改dmdcr_cfg_bak.ini,添加新增节点信息,CSS/ASMSVR/DB都要配置所有组信息修改:
DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}
每个组增加一个节点信息,注意DCR_EP_SHM_KEY、端口号不能冲突;各组信息要放在各自的后面。
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.0.13
DCR_EP_PORT = 9345
[GRP_ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93362
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.0.13
DCR_EP_PORT = 9353
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_DSC]
DCR_EP_NAME = DM3
DCR_EP_SEQNO = 2
DCR_EP_PORT = 5238
DCR_CHECK_PORT = 9743
7、使用DMASMCMD工具将新增节点信息写回磁盘,新增节点作为error节点
[bin]# ./dmasmcmd
Asm> extend dcrdisk '/dev/raw/raw1' from '/data/DAMENG/dmdcr_cfg_bak.ini'
8、配置监视器dmcssm.ini
如果配置有监视器,则直接修改dmcssm.ini,增加新扩节点DMCSS的IP:PORT配置项CSMM_CSS_IP,并重启dmcssm。
① 没有的话最好在第三方机器上进行配置。
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635 #配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.0.11:9341
CSSM_CSS_IP = 192.168.0.12:9343
CSSM_CSS_IP = 192.168.0.13:9345
CSSM_LOG_PATH = /data/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
② 启动 dmcssm 监视器
./dmcssm INI_PATH=/data/DAMENG/dmcssm.ini
9、在dmcssm控制台执行扩展节点命令
extend node
程序会通知所有实例
(CSS/ASMSVR/dmserver)
更新信息,在
CSS
控制台执行
SHOW命令,能看到新增节点信息, ASMSVR/dmserver 是 error 节点, 程 序 会 通 知ASMSVR/dmserver 更新 MAL 信息。
10、启动新的DMCSS、DMASM服务程序
在192.168.1.53节点启动dmcss、dmasmsvr程序。
手动启动新的dmcss,dcr_ini指向新的dmdcr.ini文件:
[bin]# ./dmcss DCR_INI=/data/DAMENG/dmdcr.ini
手动启动新的
dmasmsvr
,
dcr_ini
指向新的
dmdcr.ini
文件,
asmsvr
启动故障重加入流程:
[bin]# ./dmasmsvr DCR_INI=/data/DAMENG/dmdcr.ini
如果DMCSS配置有自动拉起dmasmsvr的功能,可以等待DMCSS自动拉起dmasmsvr程序,不需要手动启动。
11、启动新的数据库服务器
如果DMCSS配置有自动拉起dmserver的功能,可以等待DMCSS自动拉起实例,不需要手动启动。
如果需要手动启动,使用下面步骤:
192.168.1.53机器:
./dmserver /data/DAMENG/dsc2_config/dm.ini dcr_ini=/data/DAMENG/dmdcr.ini
./dm_service_installer.sh -t dmcss -p _dsc2 -dcr_ini /data/DAMENG/dmdcr.ini
./dm_service_installer.sh -t dmasmsvr -p _dsc2 -dcr_ini /data/DAMENG/dmdcr.ini -y DmCSSService_dsc2.service
./dm_service_installer.sh -t dmserver -p _dsc2 -dm_ini /data/DAMENG/dsc2_config/dm.ini -dcr_ini /data/DAMENG/dmdcr.ini -y DmASMSvrService_dsc2.service
🔺 以个人亲自测,使用命令行拉取可能会导致失败,最好直接注册服务,使用systemctl start 命令依次拉起CSS、ASM、Dmserver服务。
dmdcr_cdg_bak.ini
# the file is auto-created by system, self edit is invalid!
#DCR HDR
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}
DCR_GRP_N_ERR_EP = 0
DCR_GRP_ERR_EP_ARR = {}
DCR_GRP_DSKCHK_CNT = 60
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}
DCR_GRP_N_ERR_EP = 0
DCR_GRP_ERR_EP_ARR = {}
DCR_GRP_DSKCHK_CNT = 60
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}
DCR_GRP_N_ERR_EP = 0
DCR_GRP_ERR_EP_ARR = {}
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.0.11
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.0.12
DCR_EP_PORT = 9343
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.0.13
DCR_EP_PORT = 9345
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.0.11
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.0.12
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93362
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.0.13
DCR_EP_PORT = 9353
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_DSC]
DCR_EP_NAME = DM1
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DM2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9742
[GRP_DSC]
DCR_EP_NAME = DM3
DCR_EP_SEQNO = 2
DCR_EP_PORT = 5238
DCR_CHECK_PORT = 9743
DSC集群搭建接上篇博客:
DM8 DSC共享存储集群搭建_广志呦的博客-CSDN博客