前提条件:在安装好的的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查看状态,新增节点的CSS、ASM、DSC服务全部扩展成功,扩展结束。
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)
制作不易,各位看官如果觉得还可以,对您有帮助,请给小弟一键三连鼓励一下,后续还会继续保持