本文讲述的环境均是在本地的VMware虚拟机环境,仅供参考。
现有环境是三个节点的DSC集群,当DSC集群有一个节点系统故障,需要剔除节点。此次模拟是剔除节点二。
达梦数据库数据共享集群DSC -- 两节点搭建
达梦数据库数据共享集群DSC -- 添加节点
这一步需要在dmdba用户下操作,在控制节点dsc1操作
使用DMASMCMD工具export出备份文件dmdcr_cfg_bak20250326.ini
cd /opt/dmdbms/bin
./dmasmcmd
# 指定导出命令
export dcrdisk '/dev_dmdsc/DCR' to '/dmdata/config/dmdcr_cfg_bak20250326.ini'
可选择任意节点操作,这里选择控制节点dsc1操作
查询当前redo日志文件信息
cd /opt/dmdbms/bin
./dmasmtool DCR_INI=/dmdata/config/dmdcr.ini
ls +DMLOG/log
删除节点二的REDO日志文件
cd +DMLOG/log
rm -f dsc2_log01.log
rm -f dsc2_log02.log
删除节点二的归档
cd +DMDATA/ARCH
rm -rf DSC2
DSC-ASM-CSS
这一步需要在dmdba用户下操作,在节点一进入dmcssm监视器并在监视器界面执行
停止数据库实例
ep stop grp_dsc
停止ASM服务
ep stop grp_asm
停止CSS服务
这一步需要在root用户下操作,两个节点都需要执行
节点一
systemctl stop DmCSSServiceCSS1
节点二
systemctl stop DmCSSServiceCSS2
节点三
systemctl stop DmCSSServiceCSS3
修改 dmdcr_cfg_bak20250326.ini
文件
将节点二的信息删除,注意节点三参数修改 DCR_EP_SEQNO=1
vim /dmdata/config/dmdcr_cfg_bak20250326.ini
#DCR HDR
DCR_N_GRP = 3
DCR_VTD_PATH = /dev_dmdsc/VOTE
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_EP_ARR = {0,1}
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 = 2
DCR_GRP_EP_ARR = {0,1}
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 = 2
DCR_GRP_EP_ARR = {0,1}
DCR_GRP_N_ERR_EP = 0
DCR_GRP_ERR_EP_ARR = {}
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.10.10.1
DCR_EP_PORT = 11286
[GRP_CSS]
DCR_EP_NAME = CSS3
DCR_EP_HOST = 10.10.10.3
DCR_EP_PORT = 11288
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 64735
DCR_EP_SHM_SIZE = 1024
DCR_EP_HOST = 10.10.10.1
DCR_EP_PORT = 11276
DCR_EP_ASM_LOAD_PATH = /dev_dmdsc
[GRP_ASM]
DCR_EP_NAME = ASM3
DCR_EP_SHM_KEY = 64737
DCR_EP_SHM_SIZE = 1024
DCR_EP_HOST = 10.10.10.3
DCR_EP_PORT = 11278
DCR_EP_ASM_LOAD_PATH = /dev_dmdsc
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 11266
[GRP_DSC]
DCR_EP_NAME = DSC3
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 11268
修改节点一上的 dmarch.ini
文件
将节点二的信息删除
vim /dmdata/dsc1_config/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC3
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC3/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 409600
ARCH_FLUSH_BUF_SIZE = 32
修改节点三上的 dmarch.ini
文件
将节点二的信息删除
vim /dmdata/dsc3_config/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DSC3/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 409600
ARCH_FLUSH_BUF_SIZE = 32
所有节点都需要操作,配置文件相同
所有节点
vim /dmdata/config/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 10.10.10.1
MAL_PORT = 11256
[MAL_INST3]
MAL_INST_NAME = ASM3
MAL_HOST = 10.10.10.3
MAL_PORT = 11258
修改dmmal.ini配置文件
所有节点都需要操作,配置文件相同。节点一和节点三路径不一样
vim /dmdata/dsc1_config/dmmal.ini(vim /dmdata/dsc3_config/dmmal.ini)
[mal_inst0]
mal_inst_name = DSC1
mal_host = 10.10.10.1
mal_port = 11246
[mal_inst2]
mal_inst_name = DSC3
mal_host = 10.10.10.3
mal_port = 11248
修改 dmdcr.ini
文件
只需节点三修改
vim /dmdata/config/dmdcr.ini
DMDCR_SEQNO = 1
把dmdcr_cfg_bak20250326.ini配置文件写回磁盘中
这一步在控制节点dsc1上操作
cd /opt/dmdbms/bin
./dmasmcmd
init dcrdisk '/dev_dmdsc/DCR' from '/dmdata/config/dmdcr_cfg_bak20250326.ini' identified by 'Dameng123'
这一步需要在dmdba用户下操作,在节点一操作即可
在监视器配置文件里添加内容
删除节点二信息
vim /dmdata/config/cssm.ini
CSSM_OGUID = 63635
CSSM_CSS_IP = 10.10.10.1:11286
CSSM_CSS_IP = 10.10.10.3:11288
CSSM_LOG_PATH = /dmdata/log
CSSM_LOG_FILE_SIZE = 1024
CSSM_LOG_SPACE_LIMIT = 0
CSS-ASM-DSC
这一步需要在root用户下操作,两个节点都需要执行
启动节点一和节点三的CSS服务:
systemctl start DmCSSServiceCSS1
systemctl start DmCSSServiceCSS3
cd /opt/dmdbms/bin
./dmcssm ini_path=/dmdata/config/cssm.ini
show
注意
报错信息:Connect to [CSS2] failed, please check the network or the CSSM_CSS_IP config in [/dmdata/config/cssm.ini]
原因:监视器上的报错信息是由于节点三上的CSS
、ASM
和DSC
名称未变更导致;
解决方法:将在前面修改配置文件中也将节点三上的配置名称变更即可;
另外:节点三上的dm.ini
里的INSTANCE_NAME = DSC2
注意修改。
通过dmctlcvt工具将dm.ctl文件转换成文本文件进行编辑
cd /opt/dmdbms/bin
./dmctlcvt type=1 src=+DMDATA/data/dsc/dm.ctl dest=/dmdata/config/dmctrl20250326.txt dcr_ini=/dmdata/config/dmdcr.ini
编辑文件
注意
删除节点二保留节点三,但是在DSC集群中节点三就是剩余的第二个节点,所以在控制文件中需要将DSC3的信息删除
vim /dmdata/config/dmctrl20250326.txt
#===============================================
# table space name
ts_name=RLOG
# table space ID
ts_id=2
# table space status
ts_state=0
# table space cache
ts_cache=
# DSC node number
ts_nth=2
# DSC optimized node number
ts_opt_node=0
# table space quota state
ts_quota_state=0
# table space create time
ts_create_time=DATETIME '2025-02-21 02:10:12'
# table space modify time
ts_modify_time=DATETIME '2025-02-21 02:10:12'
# table space encrypt flag
ts_encrypt_flag=0
# table space copy num
ts_copy_num=0
# table space region size flag
ts_size_flag=0
# table space region huge size flag
ts_huge_size_flag=0
#-----------------------------------------------
# file path
fil_path=+DMLOG/log/dsc3_log01.log
# mirror path
mirror_path=
# file id
fil_id=0
# whether the file is auto extend
autoextend=1
# file create time
fil_create_time=DATETIME '2025-02-21 02:10:12'
# file modify time
fil_modify_time=DATETIME '2025-02-21 02:10:12'
# the max size of file
fil_max_size=0
# next size of file
fil_next_size=0
# whether the file is in creating
fil_in_creating=0
# file path
fil_path=+DMLOG/log/dsc3_log02.log
# mirror path
mirror_path=
# file id
fil_id=1
# whether the file is auto extend
autoextend=1
# file create time
fil_create_time=DATETIME '2025-02-21 02:10:12'
# file modify time
fil_modify_time=DATETIME '2025-02-21 02:10:12'
# the max size of file
fil_max_size=0
# next size of file
fil_next_size=0
# whether the file is in creating
fil_in_creating=0
#===============================================
通过dmctlcvt工具将文本文件转化成dm.ctl控制文件
./dmctlcvt type=2 src=/dmdata/config/dmctrl20250326.txt dest=+DMDATA/data/dsc/dm.ctl dcr_ini=/dmdata/config/dmdcr.ini
cd /opt/dmdbms/bin
./dmcssm ini_path=/dmdata/config/cssm.ini
show
文章
阅读量
获赞