注册
DM 两节点DSC扩展为三节点DSC
技术分享/ 文章详情 /

DM 两节点DSC扩展为三节点DSC

阳春白雪 2022/05/14 3039 0 0

动态扩展节点
已搭建好的 DMDSC 集群实例名为 DSC0、DSC1,在此基础上扩展一个节点 DSC2。
已搭建好的集群参考文档:
https://eco.dameng.com/community/post/20220514214100VU1UTI6TKEG6PTQN8V
节点 IP地址
DSC0 192.168.44.137
DSC1 192.168.44.139
DSC2 192.168.44.141

操作流程
1. 在 192.168.44.137 机 器 上 使 用 DMASMCMD 工 具 export 出 备 份
dmdcr_cfg_bak.ini
[root@dmtest03 bin]# ./dmasmcmd
Asm> export dcrdisk ‘/dev/raw/raw1’ to ‘/home/data/dmdcr_cfg_bak.ini’

2. 为新增节点准备日志文件

  1. 使用 DIsql 登录任意一个节点执行添加日志文件操作:
    至少两个日志文件,路径必须是 ASM 文件格式,大小可以参考其他两个活动节点。
    SQL>alter database add node logfile ‘+DMLOG/log/DSC2_log01.log’ size 256,
    ‘+DMLOG/log/DSC2_log02.log’ size 256;
    2)使用 dmctlcvt 工具将 dm.ctl 转换为文本文件 dmctl.txt,查看 dmctl.txt,
    新增节点的日志文件信息已经添加进 dm.ctl。
    ./dmctlcvt TYPE=1 SRC=+DMDATA/data/dsc/dm.ctl DEST=/home/data/dmctl.txt DCR_INI=/home/data/dmdcr.ini
    3)使用 dmasmtool 工具登录 ASM 文件系统,也可以看到新增的节点日志文件
    [/home/dmdba/dmdbms/bin]# ./dmasmtool DCR_INI=/home/data/dmdcr.ini
    ASM>ls +DMLOG/log

3. 为新增节点准备 config_path
将 192.168.44.137 机器/home/data/dsc0_config 目录拷贝到 192.168.44.141 机器相
同目录下,修改名字为/home/data/dsc2_config。
修改 dsc2_config 文件夹下的配置文件:

  1. 修改 dm.ini
    CONFIG_PATH = /home/data/dsc2_config
    INSTANCE_NAME = DSC2
  2. 如果打开了归档参数,修改 dmarch.ini

4. 新建 dmdcr.ini 配置文件,保存到节点 192.168.44.141 的/home/data/目录下面
注意设置 dmdcr_seqo 为 2,修改 dm.ini 路径。
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 2
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
path=/home/data/dsc2_config/dm.ini dcr_ini=/home/data/dmdcr.ini

5. 修改当前环境的 MAL 配置文件
直接修改当前环境的 dmasvrmal.ini 文件,添加新增节点信息,使用 DMASM 的所有
节点都要配置,内容完全一样,并且将新增信息后的 dmasvrmal.ini 文件拷贝到节点
192.168.44.141的/home/data 目录下。
[MAL_INST3]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.44.141
MAL_PORT = 7238
直接修改 dmserver 三个实例的 dmmal.ini,添加新增节点信息,所有节点都要配置
相同内容,保存到各自的 dsc_config 目录下。
[mal_inst2]
mal_inst_name = DSC2
mal_host = 192.168.44.141
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]中 CSS2 放在 CSS1 后面,[GRP_ASM]中 ASM2 放在 ASM1
后面,DSC2 放在 DSC1 后面。
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.44.141
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.44.141
DCR_EP_PORT = 9346
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

7. 使用 DMASMCMD 工具将新增节点信息写回磁盘,新增节点作为 error 节点
[/home/dmdba/dmdbms/bin]# ./dmasmcmd
Asm> extend dcrdisk ‘/dev/raw/raw1’ from ‘/home/data/dmdcr_cfg_bak.ini’

8. 在 dmcssm 控制台执行扩展节点命令
extend node
程序会通知所有实例(CSS/ASMSVR/dmserver)更新信息,在 CSS 控制台执行 SHOW
命令,能看到新增节点信息, ASMSVR/dmserver 是 error 节点, 程 序 会 通 知
ASMSVR/dmserver 更新 MAL 信息。

9. 启动新的 DMCSS、DMASM 服务程序
在 192.168.44.141 节点启动 dmcss、dmasmsvr 程序。
手动启动新的 dmcss,dcr_ini 指向新的 dmdcr.ini 文件:
[/home/dmdba/dmdbms/bin]# ./dmcss DCR_INI=/home/data/dmdcr.ini
报错
image.png
把共享磁盘加到141中reboot机器还是不行

退出所有 dmcss/dmasmsvr/dmserver,重新 init dcr 磁盘
init dcrdisk ‘/dev/raw/raw1’ from ‘/home/data/dmdcr_cfg_bak.ini’ identified by ‘abcd’
init votedisk ‘/dev/raw/raw2’ from ‘/home/data/dmdcr_cfg_bak.ini’
137,139启动css后,启动141的css还是报错
[root@dmtest01 bin]# ./dmcss DCR_INI=/home/data/dmdcr.ini
image.png
解决办法:
[root@dmtest01 bin]# cat /etc/udev/rules.d/60-raw.rules
cat: /etc/udev/rules.d/60-raw.rules: 没有那个文件或目录
[root@dmtest01 bin]# vi /etc/udev/rules.d/60-raw.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=“root”, GROUP=“root”, MODE=“660”
[root@dmtest01 bin]# partprobe /dev/sdb
[root@dmtest01 bin]# ll /dev/raw/
总用量 0
crw-rw----. 1 root root 162, 1 5月 8 10:38 raw1
crw-rw----. 1 root root 162, 2 5月 8 10:38 raw2
crw-rw----. 1 root root 162, 3 5月 8 10:38 raw3
crw-rw----. 1 root root 162, 4 5月 8 10:38 raw4
crw-rw----. 1 root disk 162, 0 5月 8 09:57 rawctl
[root@dmtest01 bin]# ./dmcss DCR_INI=/home/data/dmdcr.ini
DMCSS V8
DMCSS IS READY

137,139启动dmasmsvr,再启动141dmasmsvr
手动启动新的 dmasmsvr,dcr_ini 指向新的 dmdcr.ini 文件,asmsvr 启动故障
重加入流程:
[/home/dmdba/dmdbms/bin]# ./dmasmsvr DCR_INI=/home/data/dmdcr.ini
如果 DMCSS 配置有自动拉起 dmasmsvr 的功能,可以等待 DMCSS 自动拉起 dmasmsvr
程序,不需要手动启动。

10. 启动新的数据库服务器
如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不
需要手动启动。
如果需要手动启动,可参考下面的操作步骤:
192.168.44.141 机器:
./dmserver /home/data/dsc2_config/dm.ini dcr_ini=/home/data/dmdcr.ini

注册141数据库服务

注册dmcss
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmcss -p dm3 -dcr_ini /home/data/dmdcr.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServicedm3.service to /usr/lib/systemd/system/DmCSSServicedm3.service.
创建服务(DmCSSServicedm3)完成

注册dmasm
./dm_service_installer.sh -t dmasmsvr -p dm3 -dcr_ini /home/data/dmdcr.ini
dmasmsvr(RAC)服务需设置依赖服务(dmcss)!
./dm_service_installer.sh -t dmasmsvr -p dm3 -dcr_ini /home/data/dmdcr.ini -y DmCSSServicedm3
Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServicedm3.service to /usr/lib/systemd/system/DmASMSvrServicedm3.service.
创建服务(DmASMSvrServicedm3)完成

注册dmservice
./dm_service_installer.sh -t dmserver -p dm3 -dm_ini /home/data/dsc2_config/dm.ini -dcr_ini /home/data/dmdcr.ini
dmserver(RAC)服务需设置依赖服务(dmasmsvr)!
./dm_service_installer.sh -t dmserver -p dm3 -dm_ini /home/data/dsc2_config/dm.ini -dcr_ini /home/data/dmdcr.ini -y DmASMSvrServicedm3
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedm3.service to /usr/lib/systemd/system/DmServicedm3.service.

如果要删除服务
##删除服务
./dm_service_uninstaller.sh -n DmServicedm3
是否删除服务(DmServicedm3)?(Y/y:是 N/n:否): y
Removed symlink /etc/systemd/system/multi-user.target.wants/DmServicedm3.service.
删除服务文件(/usr/lib/systemd/system/DmServicedm3.service)完成
删除服务(DmServicedm3)完成
提示可以输入-h

11. 配置 dmcssm.ini
如果配置有监视器,则直接修改 dmcssm.ini,增加新扩节点 DMCSS 的 IP:PORT 配
置项 CSSM_CSS_IP,并重启 dmcssm。
如果没有配置,可参考下面的操作步骤:
以搭建的 3 节点 DSC 环境为基础,配置对应的监视器,监视器放在第三方机器上,为
Linux 操作系统,dmcssm.ini 配置文件路径为/home/data/cssm/,可根据实际情况
调整配置环境及路径。
我监视器放在192.168.44.141上

  1. 配置 dmcssm.ini 文件
    #和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
    CSSM_OGUID = 63635
    #配置所有 CSS 的连接信息,
    #和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
    CSSM_CSS_IP = 192.168.44.137:9341
    CSSM_CSS_IP = 192.168.44.139:9343
    CSSM_CSS_IP = 192.168.44.141:9345
    CSSM_LOG_PATH = /home/data/cssm #监视器日志文件存放路径
    CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
    CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
  2. 启动 dmcssm 监视器
    ./dmcssm INI_PATH=/home/data/cssm/dmcssm.ini
    image.png
    image.png
    动态扩展节点相当于搭建三节点的dsc

社区地址:https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服