DMDSC集群深化

DMDSC集群深化

客户端故障自动重连

在服务器上配置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

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

DMDSC集群剔除故障节点
之前动态添加了一个新节点DM3,现在我们把DM3作为故障节点进行剔除。
注意事项:在对故障节点进行剔除时,需要保证CSS和ASM服务正常运行,否则dmasmtool工具就无法使用。
1、在动态添加时,我们已经将DSC集群的DCR盘信息导出到dmdcr_cfg_bak.ini文件中了,所以我们需要对该文件进行修改,剔除有关于DM3的信息。
DCR_GRP_N_EP = 2
DCR_GRP_EP_ARR = {0,1}
下面内容进行删除
[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
2、经过使用dmasmtool工具是无法删除 dsc2_log01.log和dsc2_log02.log的日志文件,所以我们去转化dm.ctl文件为txt文件对dsc2_log01.log和dsc2_log02.log相关内容进行删除,再转化为ctl文件。
./dmctlcvt TYPE=1 SRC=+DMDATA/data/dsc/dm.ctl DEST=/data/DAMENG/dmctl.txt DCR_INI=/data/DAMENG/dmdcr.ini

./dmctlcvt TYPE=2 SRC=/data/DAMENG/dmctl.txt DEST=+DMDATA/data/dsc/dm.ctl DCR_INI=/data/DAMENG/dmdcr.ini
3、修改DM1和DM2上的dmarch.ini、dmasvrmal.ini、dmmal.ini、dmcssm.ini文件,删除有关DM3的一切信息。
4、按照 server–>asm–>css的顺序依次关闭两个保留节点的服务,这一步是将信息重新导入到共享盘上,不关闭服务会报错。
./dmasmcmd
ASM>init dcrdisk ‘/dev/raw/raw1’ from ‘/data/DAMENG/dmdcr_cfg_bak.ini’ identified by ‘abcd’

ASM>init votedisk ‘/dev/raw/raw2’ from ‘/data/DAMENG/dmdcr_cfg_bak.ini’
5、最后按照css–>asm–>server的顺序将保留节点的服务依次启动 通过dmcssm监控器查看下dsc信息,dsc故障节点已经清理掉了,然后成功启动初始dsc集群环境。

详情请参考:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值