DSC集群动态扩容
实例名 IP 地址 操作系统
DSC0 外部服务 IP;192.168.142.76
内部通信 IP:192.168.142.76
RedHat 7.3 Linux 64 位
DSC1 外部服务 IP;192.168.142.77
内部通信 IP:192.168.142.77
RedHat 7.3 Linux 64 位
DSC3(扩容节点) 外部服务 IP;192.168.142.78
内部通信 IP:192.168.142.78
RedHat 7.3 Linux 64 位
1、 扩容前需要存储方将dsc集群下的共享盘映射到需要扩容的第三个节点
2、 绑定UDEV
cat /etc/udev/rules.d/99-dm-devices.rules
ACTION==“add”, KERNEL==“sdb1”, RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION==“add”, KERNEL==“sdb2”, RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION==“add”, KERNEL==“sdb3”, RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION==“add”, KERNEL==“sdb4”, RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION==“add”, KERNEL==“raw[1-4]”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“6
60”
3、 扩容节点安装达梦数据库软件(不做初始化)
4、 在节点1 192.168.142.76机器上使用 DMASMCMD 工具 export 出备份
dmdcr_cfg_bak.ini
[/opt/dmdbms/bin]# ./dmasmcmd
Asm> export dcrdisk ‘/dev/raw/raw1’ to ‘/home/dmdba/dmdcr_cfg_bak.
ini’
4、为新增节点准备日志文件
SQL>alter database add node logfile ‘+DMLOG/log/DSC2_log01.log’ si
ze 256, ‘+DMLOG/log/DSC2_log02.log’ size 256;
2)使用 dmasmtool 工具登录 ASM 文件系统,也可以看到新增的节点日志文件
[dmdba@node5 bin]$ ./dmasmtool DCR_INI=/home/dmdba/dmdcr.ini
DMASMTOOL V8
ASM>cd DMLOG/log
+DMLOG/log
Used time: 2.458(ms).
ASM>ls
file : dsc0_log01.log
file : dsc0_log02.log
file : dsc1_log01.log
file : dsc1_log02.log
file : DSC2_log01.log
file : DSC2_log02.log
total count 6.
Used time: 2.630(ms).
5、为新增节点准备 config_path
将一节点 192.168.142.76 机器/home/dmdba/dsc0_config 目录拷贝到需要扩容的主机
192.168.142.78相同目录下,修改名字为/home/dmdba/dsc2_config。
修改 dsc2_config 文件夹下的配置文件:
6、新建 dmdcr.ini 配置文件,保存到新扩容节点 192.168.142.78 的/home/dmdba/目录下
面注意设置 dmdcr_seqo 为 2,修改 dm.ini 路径。
vi dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置
文件路径
DMDCR_SEQNO = 2
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/home/dmd
ba/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/dmdba/d
sc2_config/dm.ini dcr_ini=/home/dmdba/dmdcr.ini
7、修改当前环境的 MAL 配置文件
直接修改当前环境的 dmasvrmal.ini 文件,添加新增节点信息,使用 DMASM 的所有
节点都要配置,内容完全一样,并且将新增信息后的 dmasvrmal.ini 文件拷贝到节点
192.168.142.78 的/home/dmdba 目录下。
[MAL_INST3]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.142.78
MAL_PORT = 7238
8、直接修改 dmserver 三个实例的 dmmal.ini,添加新增节点信息,所有节点都要配置
相同内容,保存到各自的 dsc_config 目录下。
[mal_inst2]
mal_inst_name = DSC2
mal_host = 192.168.142.78
mal_port = 9342
9、修改 dmdcr_cfg_bak.ini,添加新增节点信息,
1)CSS/ASMSVR/DB 都要配置所有组信息修改:
DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}
2)每个组增加一个节点信息,注意 DCR_EP_SHM_KEY、端口号不能冲突;各组信息要放
在各自的后面,即[GRP_CSS]中 CSS2 放在 CSS1 后面,[GRP_ASM]中 ASM2 放在 ASM1
后面,DSC2 放在 DSC1 后面。
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.142.78
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.142.78
DCR_EP_PORT = 9353
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 2
DCR_EP_PORT = 5238
DCR_CHECK_PORT = 9743
10、使用 DMASMCMD 工具将新增节点信息写回磁盘,新增节点作为 error 节点
[/opt/dmdbms/bin]# ./dmasmcmd
Asm> extend dcrdisk ‘/dev/raw/raw1’ from ‘/home/dmdba/dmdcr_cfg_ba
k.ini’
11、在 dmcssm 控制台执行扩展节点命令
./dmcssm INI_PATH=/home/dmdba/dmcssm.ini
extend node
程序会通知所有实例(CSS/ASMSVR/dmserver)更新信息,在 CSS 控制台执行 SHOW
命令,能看到新增节点信息, ASMSVR/dmserver 是 error 节点, 程 序 会 通 知
ASMSVR/dmserver 更新 MAL 信息。
12、启动新的 DMCSS、DMASM 服务程序,在新扩容节点 192.168.142.78 启动 dmcss、
dmasmsvr 程序。
手动启动新的 dmcss,dcr_ini 指向新的 dmdcr.ini 文件:
[/opt/dmdbms/bin]# ./dmcss DCR_INI=/home/dmdba/dmdcr.ini
手动启动新的 dmasmsvr,dcr_ini 指向新的 dmdcr.ini 文件,asmsvr 启动故障
重加入流程:
[/opt/dmdbms/bin]# ./dmasmsvr DCR_INI=/home/dmdba/dmdcr.ini
如果 DMCSS 配置有自动拉起 dmasmsvr 的功能,可以等待 DMCSS 自动拉起 dmasmsv
r程序,不需要手动启动。
13、启动新的数据库服务器
如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需
要手动启动。
如果需要手动启动,可参考下面的操作步骤:
192.168.142.78 机器:
./dmserver /home/dmdba/dsc2_config/dm.ini dcr_ini=/home/dmdba/dmdc
r.ini
14、注册服务、修改dmdcr.ini配置文件自动拉起服务
./dm_service_installer.sh -t dmcss -p DMCSS2 -dcr_ini /home/dmdba/
dmdcr.ini
./dm_service_installer.sh -t dmasmsvr -p DMASM2 -dcr_ini /home/dmd
ba/dmdcr.ini -y DmCSSServiceDMCSS2
./dm_service_installer.sh -t dmserver -p DMSERVER2 -dm_ini /home/d
mdba/dsc2_config/dm.ini -dcr_ini /home/dmdba/dmdcr.ini -y DmASMSvr
ServiceDMASM2
15、. 配置 dmcssm.ini
如果配置有监视器,则直接修改 dmcssm.ini,增加新扩节点 DMCSS 的 IP:PORT 配
置项 CSSM_CSS_IP,并重启 dmcssm。
如果没有配置,可参考下面的操作步骤:
以搭建的 3 节点 DSC 环境为基础,配置对应的监视器,监视器放在第三方机器上,为
Linux 操作系统,dmcssm.ini 配置文件路径为/home/data/cssm/,可根据实际情况
调整配置环境及路径。
启动第三节点服务,并查看状态
./DmCSSServiceDMCSS2 start
DSC集群缩容
1、首先登录dmasmcmd工具,将你当前DSC集群的DCR盘信息导出到dmdcr_cfg_bak.ini
中
[dmdba@node5 bin]$ ./dmasmcmd
DMASMCMD V8
ASM>export dcrdisk ‘/dev/raw/raw1’ to ‘/home/dmdba/dmdcr_cfg_bak.i
ni’
ASMCMD export DCRDISK success.
Used time: 4.972(ms).
2、删除节点登录dmasmtool工具,将之前添加的日志文件内容进行删除
这边DSC2_log01.log 跟DSC2_log02.log 是我之前做拓展节点的时候新建的日志,这边进
行删除(如果你还有归档的配置信息,在tool里记得删除,我这边没配,所以只需要删除日
志就行)
[dmdba@node5 bin]$ ./dmasmtool dcr_ini=/home/dmdba/dmdcr.ini
DMASMTOOL V8
ASM>pwd
+DMLOG/log
Used time: 0.283(ms).
ASM>ls +DMLOG/log
file : dsc0_log01.log
file : dsc0_log02.log
file : dsc1_log01.log
file : dsc1_log02.log
file : DSC2_log01.log
file : DSC2_log02.log
total count 6.
Used time: 9.264(ms).
ASM>rm -rf DSC2_log01.log
Used time: 17.288(ms).
ASM>rm -rf DSC2_log02.log
Used time: 6.249(ms).
3、关闭所有服务包括数据库、css、svr服务
[dmdba@node5 bin]$ ps -ef|grep css
dmdba 3057 2835 0 11:57 pts/0 00:00:00 grep --color=auto c
ss
[dmdba@node5 bin]$ ps -ef|grep svr
dmdba 3059 2835 0 11:57 pts/0 00:00:00 grep --color=auto s
vr
4、修改dmdcr_cfg_bak.ini文件
停止所有节点server、css、asm服务
我们在第一步的时候使用cmd工具导出了一份文件,然后我们在这里进行修改(下图是我
已经修改好的)修改的目的是将拓展节点的信息删除,保留源两节点的dsc信息
具体的修改内容为
将所有DCR_GRP_N_EP = 3 修改为 DCR_GRP_N_EP = 2
将所有的DCR_GRP_EP_ARR = {0,1,2} 修改为 DCR_GRP_EP_ARR = {0,1}
将所有拓展节点的信息如CSS2、ASM2、DSC2的节点信息给删除
[dmdba@node5 bin]$ ./dmasmcmd
DMASMCMD V8
ASM>init dcrdisk ‘/dev/raw/raw1’ from '/home/dmdba/dmdcr_cfg_2.ini
’ identified by ‘abcd’
[Trace]DG 126 alloc one extent for inodes, addr(disk_id, disk_auno,
extent_no):(0,0,1).
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
[Trace]DG 126 alloc 4 extents for 0xfe000002, addr(disk_id, disk_au
no, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 00:00:14.710.
ASM>
5、然后将服务重新启动起来,记得两台依次启动,先启dmcss后起dmasmsvr
一节点:
./DmCSSServiceDMCSS1 start
./DmASMSvrServiceDMASM1 start
二节点:
./DmCSSServiceDMCSS1 start
./DmASMSvrServiceDMASM1 start
6、通过dmcssm监控器查看下dsc信息,dsc故障节点已经清理掉了,然后成功启动初始
dsc集群环境
./dmcssm INI_PATH=/home/dmdba/dmcssm.ini
show命令查看当前集群
7、通过dmctlcvt工具将dm.ctl文件转换成文本文件进行编辑,清理dsc2log
./dmctlcvt type=1 src=+DMDATA/data/dsc/dm.ctl dest=/home/dmdba/dmc
trl.txt dcr_ini=/home/dmdba/dmdcr.ini
删除如下信息vim /home/dmdba/dmctrl.txt 文件,找到DSC2_log01.log部分的内容,将内
容DSC2_log01.log和DSC2_log02.log内容进行删除
fil_path=+DMLOG/log/DSC2_log01.log
mirror_path=
fil_id=0
autoextend=1
fil_create_time=DATETIME ‘2022-6-6 15:18:30’
fil_modify_time=DATETIME ‘2022-6-6 15:18:30’
fil_max_size=0
fil_next_size=0
8、通过dmctlcvt工具将文本文件转化成dm.ctl控制文件
./dmctlcvt type=2 src=/home/dmdba/dmctrl.txt dest=+DMDATA/data/dsc
/dm.ctl dcr_ini=/home/dmdba/dmdcr.ini
9、重启集群测试
文章
阅读量
获赞