达梦数据库dsc集群动态添加节点

前提条件:在安装好的的dsc集群:达梦数据库dsc集群保姆级部署文档_达梦数据库文档-CSDN博客上动态添加节点

1、环境信息

扩展节点信息:

操作环境:VMware Workstation 16 Pro

dmdsc集群

机器ip

主机名

操作系统

资源配置

实例名

达梦软件安装目录

数据存储目录

dmdsc2

192.168.58.43

dmdsc2

kylin-v10

4核4G,磁盘20g

DMDSC2

/dm8/dminstall

/dm8/data

存储规划:

保持跟之前的dsc集群的一致

ASM磁盘名

大小

用途

DCR

1G

存放DCR配置信息

VOTE

1G

存放表决文件

LOG0

3G

存放在线日志文件

DATA0

9.6G

存放数据文件

扩展节点同样的需要添加裸设备磁盘,按照之前dsc节点方式划分,对划分出的磁盘目录进行赋权,同样需要安装达梦数据库软件:

1、配置dmdsc2虚拟机文件

dmdsc2虚拟机目录下的.vmx查看是否末尾有以下参数,如果没有的手动加入

disk.locking="FALSE" 
scsi0:1.SharedBus="Virtual" 
scsi1:1.SharedBus="Virtual"

# disk.locking="FALSE" 参数是设置虚拟磁盘的锁定行为。FALSE 表示禁用磁盘锁定,禁用磁盘锁定允许多个虚拟机同时访问同一个虚拟磁盘,这在一些特定的配置(例如共享磁盘集群)中是有用的。
# scsi0:1.SharedBus="Virtual" 这个参数设置 SCSI 控制器 0 上的第 1 个设备(通常是虚拟磁盘)的共享总线行为。SharedBus="Virtual" 表示 SCSI 总线处于虚拟共享模式,使多个虚拟机可以共享同一个 SCSI 总线上的设备。
# scsi1:1.SharedBus="Virtual" 这个参数设置 SCSI 控制器 1 上的第 1 个设备(通常是虚拟磁盘)的共享总线行为。SharedBus="Virtual" 表示 SCSI 总线处于虚拟共享模式,使多个虚拟机可以共享同一个 SCSI 总线上的设备。

2、dmdsc2虚拟机添加永久磁盘

dmdsc2虚拟机新增永久磁盘,两台虚拟机操作步骤相同,步骤如下:

1、点击编辑虚拟机设置

2、选择硬盘,点击添加

3、点击硬盘,点击下一步

4、选择磁盘类型,选择SCSI,点击下一步

5、选择使用现有虚拟磁盘,点击下一步

6、选择之前创建好的虚拟磁盘文件:D:\share\sharedisk.vmdk ,点击完成,最后选择保持现有格式

7、点击高级按钮

8、选择新添加的磁盘设置成独立+永久模式,最后点击确定、确定,完成操作

3、启动dmdsc2虚拟机,查看磁盘状态

fdisk -l

4、关闭防火墙并安装达梦数据库软件

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

创建用户组、用户、安装目录:

# 创建用户组和用户
groupadd dinstall
useradd -g dinstall dmdba
echo "Dameng123" |passwd --stdin dmdba

# dminstall是达梦数据库软件安装的位置,dmdata是达梦数据库实例存放位置,dmarch是达梦数据库归档日志存放位置,dmbak是达梦数据库备份文件存放位置
mkdir -p /dm8/{dminstall,dmdata,dmarch,dmbak}
chown -R dmdba:dinstall /dm8
chmod -R 755 /dm8

调整系统资源限制:

# 在/etc/security/limits.conf文件里面追加下面的内容

vim /etc/security/limits.conf

# 内容如下:
dmdba   soft    nofile  65536
dmdba   hard    nofile  65536
dmdba   soft    nproc   65536
dmdba   hard    nproc   65536

下载或者上传达梦的安装包:

在官网选择好自己的cpu平台和操作系统版本,开放版这里没有银河麒麟v10,选择redhat7代替

 
# 下载dm8
wget https://download.dameng.com/eco/adapter/DM8/202401END/dm8_20240408_x86_rh7_64.zip
# 解压dm8
unzip dm8_20240408_x86_rh7_64.zip

挂载iso镜像:

mount -o loop dm8_20240408_x86_rh7_64.iso /mnt

切换到dmdba用户下安装达梦数据库产品:

su - dmdba
/mnt/DMInstall.bin -i

根据实际情况去配置:

根据上面执行结果的要求,新开一个窗口登录root用户执行上述root_installer.sh脚本注册数据库服务:

/dm8/dminstall/script/root/root_installer.sh

到这里,dm8软件就安装完成了

麒麟操作系统需要修改 RemoveIPC 参数,防止关闭asm服务时,进程还在,导致重新起来报错:

vim /etc/systemd/logind.conf
设置 RemoveIPC 参数为 no保存后重启服务
systemctl daemon-reload
systemctl restart systemd-logind
##检查验证
grep RemoveIPC /etc/systemd/logind.conf
# RemoveIPC=no
#结果验证确认
loginctl show-session|grep RemoveIPC
systemctl show systemd-logind|grep RemoveIPC

5、dmdsc2机器修改udev规则文件并授权

# 如果没有70-persistent-ipoib.rules这个文件,新创建一个就可以
vim /etc/udev/rules.d/70-persistent-ipoib.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="660"

执行下面的命令,使 udev 生效:

udevadm trigger --type=devices --action=change

# 重启dmdsc2机器
reboot

# 查看dmdsc2配置的udev是否生效并对磁盘目录赋权
ll /dev/raw/raw*
chown -R dmdba:dinstall /dev/raw
ll /dev/raw/raw*

2、扩展流程

1、dsc集群控制节点(dmdsc0)导出dmdcr_cfg.ini配置文件

选择控制节点(dmdsc0)192.168.58.40,使用DMASMCMD工具export出备份文件dmdcr_cfg_bak.ini,命令:

su - dmdba
cd /dm8/dminstall/bin
./dmasmcmd

# 指定导出命令
export dcrdisk '/dev/raw/raw1' to '/dm8/dmdata/dmdcr_cfg_bak.ini'

2、为新增节点准备日志文件(dmdsc0节点操作)

可选择任意节点操作,这里选择控制节点(dmdsc0)192.168.58.40

1、使用disql登陆数据库,执行添加日志文件命令,至少两个日志文件,路径不必须是ASM文件格式,大小可以参考其他活动节点,命令:

su - dmdba
cd /dm8/dminstall/bin
./disql

# 指定添加日志文件命令
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,查看目录/dm8/dmdata目录下的dmctl.txt文件,新增节点的日志文件信息已经添加进dm.ctl,命令:

su - dmdba
cd /dm8/dminstall/bin
./dmctlcvt TYPE=1 SRC=+DMDATA/data/dsc/dm.ctl DEST=/dm8/dmdata/dmctl.txt DCR_INI=/dm8/dmdata/dmdcr.ini
cat /dm8/dmdata/dmctl.txt |grep log

3、使用dmasmtool工具登陆ASM文件系统,可以看到新增的节点日志文件,命令:

su - dmdba
cd /dm8/dminstall/bin
./dmasmtool DCR_INI=/dm8/dmdata/dmdcr.ini
# 执行命令,查看log目录中是否有新增节点日志文件
ls +DMLOG/log

3、为新增节点准备配置文件路径

控制节点(dmdsc0)192.168.58.40节点/dm8/dmdata/dsc0目录拷贝到dmdsc2新增节点的192.168.58.43的/dm8/dmdata目录下,dsc0修改名字为dsc2。

# 在dmdsc0节点操作
su - dmdba
cd /dm8/dmdata
scp -r dsc0 dmdba@192.168.58.43:/dm8/dmdata/dsc2

修改新增节点(dmdsc2)192.168.58.43的dsc2中的dm.ini文件:

 # dmdsc2节点操作
 su - dmdba
 cd /dm8/dmdata/dsc2
 vim dm.ini
 # 修改配置文件存放路径和实例名

如果之前有打开了归档参数,也要修改 dmarch.ini,就参考其它节点去配置,要根据自己的实际情况去修改,这里是示范操作,如下: 

ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DMDSC2
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DMDSC0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DMDSC1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024

4、为新增节点增加dmdcr.ini配置文件(dmdsc2节点)

在新增节点的/dm8/dmdata目录下新建dmdcr.ini配置文件,注意设置dmdcr_seqo为2(因为之前的节点使用了0/1),修改dm.ini路径,文件内容为:

su - dmdba
vim /dm8/dmdata/dmdcr.ini
# 内容如下:
DMDCR_PATH     = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmdata/dmasvrmal.ini
DMDCR_SEQNO   = 2
DMDCR_AUTO_OPEN_CHECK = 60

5、修改dsc集群环境中所有节点的MAL配置文件

所有节点的MAL配置文件都要保持一致,修改后的dmasvrmal.ini配置文件如下:

su - dmdba
vim /dm8/dmdata/dmasvrmal.ini
# 内容如下:
[MAL_INST0]
 MAL_INST_NAME = DMASM0
 MAL_HOST = 192.168.58.40
 MAL_PORT = 7238
[MAL_INST1]
 MAL_INST_NAME = DMASM1
 MAL_HOST = 192.168.58.41
 MAL_PORT = 7238
[MAL_INST2]
MAL_INST_NAME = DMASM2
MAL_HOST = 192.168.58.43
MAL_PORT = 7238

所有节点的MAL配置文件都要保持一致,修改后的dmmal.ini配置文件如下:

# 所有节点都需要修改dmmal.ini配置文件,dmmal.ini配置文件分别在dsc0、dsc1、dsc2目录

# 内容如下:
[mal_inst0]
    mal_inst_name  = DMDSC0
    mal_host       = 192.168.58.40
    mal_port       = 9236

[mal_inst1]
    mal_inst_name  = DMDSC1
    mal_host       = 192.168.58.41
    mal_port       = 9236

[mal_inst2]
    mal_inst_name  = DMDSC2
    mal_host       = 192.168.58.43
    mal_port       = 9236

6、控制节点(dmdsc0)修改dmdcr_cfg_bak.ini配置文件,增加节点信息

CSS/ASMSVR/DB 都要配置,所有组信息修改:

su - dmdba
vim /dm8/dmdata/dmdcr_cfg_bak.ini

DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}

每个组增加一个节点信息,注意 DCR_EP_SHM_KEY、端口号不能冲突;各组信息要放在各自的后面,即[GRP_CSS]中 DMCSS2 放在 DMCSS1 后面,[GRP_ASM]中DMASM2放在 DMASM1后面,DMDSC2放在DMDSC1 后面,添加的内容为:

[GRP_CSS]
DCR_EP_NAME        = DMCSS2
DCR_EP_HOST        = 192.168.58.43
DCR_EP_PORT        = 9341
 
[GRP_ASM]
DCR_EP_NAME        = DMASM2
DCR_EP_SHM_KEY     = 93362
DCR_EP_SHM_SIZE    = 20
DCR_EP_HOST        = 192.168.58.43
DCR_EP_PORT        = 9349
DCR_EP_ASM_LOAD_PATH  = /dev/raw
 
[GRP_DSC]
DCR_EP_NAME        = DMDSC2
DCR_EP_SEQNO       = 2
DCR_EP_PORT        = 5236
DCR_CHECK_PORT     = 9741

7、把dmdcr_cfg_bak.ini配置文件写回磁盘中

控制节点(dmdsc0)192.168.58.40上使用DMASMCMD工具将新增节点信息写回磁盘,新增节点作为error节点,命令:

# 在dmdsc0节点上操作
su - dmdba
cd /dm8/dminstall/bin
./dmasmcmd
# 执行命令,把配置文件写回磁盘中
extend dcrdisk '/dev/raw/raw1' from '/dm8/dmdata/dmdcr_cfg_bak.ini'

8、在 dmcssm (192.168.58.42)控制台执行扩展节点命令

su - dmdba
cd /dm8/dminstall/bin
./dmcssm ini_path=/dm8/dmdata/dmcssm.ini
# 执行扩展节点命令
extend node

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

9、启动新的 DMCSS、DMASM、DMDSC服务程序(dmdsc2节点)

在新增节点(dmdsc2)192.168.58.43节点启动 dmcss、dmasmsvr、dmserver程序

手动启动新的 dmcss,dcr_ini 指向新的 dmdcr.ini 文件:

su - dmdba
cd /dm8/dminstall/bin
./dmcss DCR_INI=/dm8/dmdata/dmdcr.ini

新开一个窗口手动启动新的 dmasmsvr,dcr_ini 指向新的 dmdcr.ini 文件,asmsvr 启动故障重加入流程:

su - dmdba
cd /dm8/dminstall/bin
./dmasmsvr DCR_INI=/dm8/dmdata/dmdcr.ini

如果 DMCSS 配置有自动拉起 dmasmsvr 的功能,可以等待 DMCSS 自动拉起dmasmsvr程序,不需要手动启动。这里没有配置自动拉起,需要使用手动启动,新开一个窗口,进行下面的操作步骤:

su - dmdba
cd /dm8/dminstall/bin
./dmserver /dm8/dmdata/dsc2/dm.ini dcr_ini=/dm8/dmdata/dmdcr.ini

10、使用dmcssm监控器(192.168.58.42)查看dsc集群状态

退出之前打开dmcssm监控器,修改监控器配置文件,新增节点的配置:

vim /dm8/dmdata/dmcssm.ini
# 新增内容:
CSSM_CSS_IP = 192.168.58.43:9341

进入DMCSSM监控器,show查看状态,新增节点的CSSASMDSC服务全部扩展成功,扩展结束。

cd /dm8/dminstall/bin
./dmcssm ini_path=/dm8/dmdata/dmcssm.ini
# 执行命令查看状态
show

注意:一定要关闭防火墙,不然会造成新增ASM不被识别而启动失败

11、注册服务

以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。

先关闭之前由前台启动的dmcss、dmasm、dmdsc服务,关闭顺序:DMDSC-->DMASM-->DMCSS

# 前台启动输出exit,回车就可以关闭
exit

注册css服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmCSSService ./DmCSSServiceDMCSS2

# 修改DmCSSServiceDMCSS2文件
vim DmCSSServiceDMCSS2

#修改内容:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

注册asm服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmASMSvrService ./DmASMSvrServiceDMASM2

# 修改DmASMSvrServiceDMASM2文件
vim DmASMSvrServiceDMASM2

# 修改内容如下:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

注册dm实例服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmService ./DmServiceDMDSC2

# 修改DmServiceDMDSC0文件
vim DmServiceDMDSC2

# 修改内容如下:
INI_PATH=%INI_PATH% 改为 INI_PATH=/dm8/dmdata/dsc2/dm.ini
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

使用服务方式后台启动

su - dmdba
cd /dm8/dminstall/bin
# 启动dmcss、dmasm、dmdsc程序服务
./DmCSSServiceDMCSS2 start
./DmASMSvrServiceDMASM2 start
./DmServiceDMDSC2 start

大家想学习达梦数据库或者解决报错问题,可以去达梦数据库社区地址(https://eco.dameng.com

制作不易,各位看官如果觉得还可以,对您有帮助,请给小弟一键三连鼓励一下,后续还会继续保持 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值