注册
达梦第八课-DSC集群磁盘扩容和增加节点
技术分享/ 文章详情 /

达梦第八课-DSC集群磁盘扩容和增加节点

WXY是对称的 2025/06/20 238 0 0

DSC集群磁盘扩容和增加节点测试

由于前期测试REDO盘规划较小,当前无法直接增加节点3的REDO,因此需要扩容REDO盘,然后在进行节点添加。

一、 环境信息

当前集群为2节点DSC集群,新增节点DSC3服务器,环境如下:
image.png

二、 增加虚拟机及磁盘

虚拟机进行centos7部署,关闭防火墙,调整时间,调整系统内核参数、limit限制,创建dmdba用户等。

1 虚拟机磁盘准备

DSC1服务器再创建一个磁盘,大小为1G(RLOG) 。操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>创建新的虚拟磁盘–>1G-立即分配-存储为单个文件–>选择存放位置以及改名–>完成。

DSC2服务器需要基于DSC1服务器创建的第五个磁盘进行添加,操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>使用现有的虚拟磁盘–>浏览选择磁盘–>完成。

DSC3服务器需要基于DSC1服务器创建的五个磁盘进行添加,操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>使用现有的虚拟磁盘–>浏览选择磁盘–>完成。

完成后结果如下图:
image.png
添加磁盘后,磁盘可能会跳号,这里就体现了UUID绑定的重要性。

2. 虚拟机配置文件修改

找到虚拟机安装位置,编辑DSC3虚拟机的参数文件DSC3.vmx:
添加以下内容。

diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = "0"
disk.locking = "FALSE"
scsi0.sharedBus ="virtual"
disk.EnableUUID = "TRUE"

注意scsi0.sharedBus ="virtual"参数,查看磁盘高级选项,查看scsi的编号进行调整,通常默认会识别为scsi0:2-5。

3. Udev绑定(所有服务器)

3.1 查看磁盘

fdisk  -l 

image.png

3.2 查看磁盘的UUID

/usr/lib/udev/scsi_id -g -u /dev/sdb 

image.png

3.3 绑定磁盘

vi /etc/udev/rules.d/66-dmdevices.rules
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29f1fb601bd39e1008801375b84", SYMLINK+="ASMDISK/dmdcr",OWNER="dmdba", GROUP="dmdba",MODE="0660"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2951f912cfa5a52048f7846be92", SYMLINK+="ASMDISK/dmvote",OWNER="dmdba", GROUP="dmdba",MODE="0660"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29293ba4bb7e368110283b32f6a", SYMLINK+="ASMDISK/dmredo",OWNER="dmdba", GROUP="dmdba",MODE="0660"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2963b11d8c08e0ead2aa246a532", SYMLINK+="ASMDISK/dmdata",OWNER="dmdba", GROUP="dmdba",MODE="0660"
#增加下面这个
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29109e1d80349aad8ae8cce7605", SYMLINK+="ASMDISK/dmredo2",OWNER="dmdba", GROUP="dmdba",MODE="0660"

3.4 生效

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

3.5 查看

ls -l /dev/ASMDISK

image.png

4. 新节点数据库软件安装

4.1 安装数据库软件

./DMInstall.bin -I  <<EOF
1
n
y
21
1
/dmdata/dmdbms
y
EOF
su - root
sh  /dmdata/dmdbms/script/root/root_installer.sh

4.2 配置环境变量

echo " export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool"  >> .bash_profile 
source .bash_profile

5. DSC1节点增加数据盘

5.1 初始化增加数据盘

[dmdba@dsc1 ~]$ dmasmcmd
dmasmcmd V8
ASM>create asmdisk '/dev/ASMDISK/dmredo2' 'DMREDO' 1024
[TRACE]The ASM initialize asmdisk /dev/ASMDISK/dmredo2 to name DMASMDMREDO
Used time: 15.459(ms).

5.2 将数据盘添加到DM_REDO中

(1)登录

[dmdba@dsc1 ~]$ dmasmtool DCR_INI=/dmdata/dmdbms/config/dmdcr.ini
dmasmtool V8

(2)查看磁盘情况

ASM>df
group DM_REDO include 1 disks......
         NO.1 disk :
                 name: DMASMDMREDO
                 path: /dev/ASMDISK/dmredo
                 size: 1.97 GB
                 create_time: 2025-06-11 22:13:44
                 modify_time: 2025-06-11 22:20:00
                 belong group: DM_REDO
group DM_DATA include 1 disks......
         NO.1 disk :
                 name: DMASMDMDATA
                 path: /dev/ASMDISK/dmdata
                 size: 7.97 GB
                 create_time: 2025-06-11 22:13:44
                 modify_time: 2025-06-11 22:20:04
                 belong group: DM_DATA
······
total 1 disks unused......
        NO.1 :  name: DMASMDMREDO, path: /dev/ASMDISK/dmredo2, size: 992.00 MB
Used time: 38.473(ms).

(3)添加盘

ASM>alter diskgroup DM_REDO add  asmdisk '/dev/ASMDISK/dmredo2'
Used time: 9.066(ms).

(4)查看磁盘情况

ASM>df
group DM_REDO include 2 disks......
         NO.1 disk :
                 name: DMASMDMREDO
                 path: /dev/ASMDISK/dmredo
                 size: 1.97 GB
                 create_time: 2025-06-11 22:13:44
                 modify_time: 2025-06-11 22:20:00
                 belong group: DM_REDO
······

5.3 查看磁盘组

ASM>lsdg
total 4 groups......
1 disk_group:
         name: DM_REDO
         id: 0
         au_size: 1.00 MB
         extent_size: 4
         total_size: 2.94 GB
         free_size: 1.42 GB
         total_file_num: 8

三、 DMDSC增加节点

1. 在数据库中添加DSC3的REDO日志文件

1.1 创建REDO文件

[dmdba@dsc1 ~]$ disql
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 5.067(ms)
disql V8
SQL> alter database add node logfile '+DM_REDO/log/db2_log01.log' size 256,'+DM_REDO/log/db2_log02.log' size 256,'+DM_REDO/log/db2_log03.log' size 256;
操作已执行
已用时间: 477.455(毫秒). 执行号:501.

1.2 查看REDO文件信息

使用 dmctlcvt 工具将 dm.ctl 转换为文本文件 dmctl.txt,查看 dmctl.txt,
新增节点的日志文件信息已经添加进 dm.ctl。

 [dmdba@dsc1 ~]$ dmctlcvt TYPE=1 SRC=+DM_DATA/DATA/DSC/dm.ctl DEST=/dmdata/dmdbms/dmctl.txt DCR_INI=/dmdata/dmdbms/config/dmdcr.ini
dmctlcvt V8
convert ctl to txt success!
[dmdba@dsc1 db0_config]$ grep 'REDO' /dmdata/dmdbms/dmctl.txt
fil_path=+DM_REDO/log/db0_log01.log
fil_path=+DM_REDO/log/db0_log02.log
fil_path=+DM_REDO/log/db0_log03.log
fil_path=+DM_REDO/log/db1_log01.log
fil_path=+DM_REDO/log/db1_log02.log
fil_path=+DM_REDO/log/db1_log03.log
fil_path=+DM_REDO/log/db2_log01.log
fil_path=+DM_REDO/log/db2_log02.log
fil_path=+DM_REDO/log/db2_log03.log
[dmdba@dsc1 db0_config]$

1.3 进入ASM里查看REDO文件

[dmdba@dsc1 ~]$ dmasmtool DCR_INI=/dmdata/dmdbms/config/dmdcr.ini
dmasmtool V8
ASM>ls +DM_REDO/log
        file : db0_log01.log
        file : db0_log02.log
        file : db0_log03.log
        file : db1_log01.log
        file : db1_log02.log
        file : db1_log03.log
        file : db2_log01.log
        file : db2_log02.log
        file : db2_log03.log
total count 9.
Used time: 5.857(ms).
ASM>

2. 对新增节点进行配置文件整理

2.1 拷贝DSC1的配置文件到DSC3

[dmdba@dsc1 config]$ scp -r  db0_config root@192.168.20.53:/dmdata/dmdbms/config/db2_config

2.1.1 修改Dmdcr.ini(DSC3)

新建 dmdcr.ini 配置文件,保存到节点192.168.20.53的/dmdata/dmdbms/config目录下面
#注意DMDCR_SEQNO = 2,序号相对前两个+1

DMDCR_PATH                 = /dev/ASMDISK/dmdcr
DMDCR_MAL_PATH             = /dmdata/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO                = 2
DMDCR_ASM_TRACE_LEVEL      = 2
DMDCR_AUTO_OPEN_CHECK      = 90
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD      = /dmdata/dmdbms/bin/DmASMSvrServiceASM start
DMDCR_DB_RESTART_INTERVAL  = 60
DMDCR_DB_STARTUP_CMD       = /dmdata/dmdbms/bin/DmServiceDMS start

2.2 修改 dsc2_config 文件夹下的配置文件:

2.2.1 修改 dm.ini

CONFIG_PATH = /dmdata/dmdbms/config/db2_config
INSTANCE_NAME = DB2

2.2.2 修改 dmarch.ini

[dmdba@localhost db2_config]$ cat dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DM_DATA/DB2/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DB0
ARCH_INCOMING_PATH = +DM_DATA/DB0/arch
ARCH_FILE_SIZE = 1024
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DB1
ARCH_INCOMING_PATH = +DM_DATA/DB1/arch
ARCH_FILE_SIZE = 1024

3. 当前集群参数配置

3.1 修改归档配置

3.1.1 增加归档信息

#修改[ARCHIVE_REMOTE2]的DSC3服务器位置

[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DB2
ARCH_INCOMING_PATH = +DM_DATA/DB2/arch
ARCH_FILE_SIZE = 1024

3.1.2 增加DSC3的ASM归档路径

dmasmtool DCR_INI=/dmdata/dmdbms/config/dmdcr.ini
dmasmtool V8
ASM>cd DM_DATA
+DM_DATA
Used time: 1.332(ms).
ASM>ls
        dir : DATA
        dir : DB0
        dir : DB1
total count 3.
Used time: 1.650(ms).
ASM>mkdir DB2
Used time: 1.874(ms).
ASM>ls
        dir : DATA
        dir : DB0
        dir : DB1
        dir : DB2
total count 4.
Used time: 1.859(ms).

3.2 Dmmal.ini(所有节点)

[dmdba@localhost ~]$ cd /dmdata/dmdbms/config
[dmdba@localhost ~]$ cat db2_config/dmmal.ini
[mal_inst0]
    mal_inst_name  = DB0
    mal_host       = 192.168.20.51
    mal_port       = 5736

[mal_inst1]
    mal_inst_name  = DB1
    mal_host       = 192.168.20.52
    mal_port       = 5736

[mal_inst2]
    mal_inst_name  = DB2
    mal_host       = 192.168.20.53
    mal_port       = 5736
[dmdba@localhost config]$

3.2.1 dmasvrmal.ini(所有节点)

[dmdba@localhost ~]$ cd /dmdata/dmdbms/config
 [dmdba@localhost config]$ cat dmasvrmal.ini
[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 192.168.20.51 #心跳地址
  MAL_PORT                 = 5636
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 192.168.20.52 #心跳地址
  MAL_PORT                 = 5636
[MAL_INST3]
  MAL_INST_NAME            = ASM2
  MAL_HOST                 = 192.168.20.53 #心跳地址
  MAL_PORT                 = 5636

3.3 导出当前的DCR配置信息

[dmdba@dsc1 ~]$ dmasmcmd
dmasmcmd V8
ASM>export dcrdisk '/dev/ASMDISK/dmdcr' to '/dmdata/dmdbms/dmdcr_cfg_bak.ini'
ASMCMD export DCRDISK success.
Used time: 9.330(ms).

3.4 编辑dmdcr_cfg_bak.ini

#修改各个组的参数信息,增加DSC3节点的信息
#注意DCR_EP_SHM_KEY要错开

[dmdba@dsc1 dmdbms]$ cat dmdcr_cfg_bak.ini
# the file is auto-created by system, self edit is invalid!
#DCR HDR
DCR_N_GRP              = 3
DCR_VTD_PATH           = /dev/ASMDISK/dmvote
DCR_OGUID              = 45331
DCR_MODE               = 0

[GRP]
DCR_GRP_TYPE           = CSS
DCR_GRP_NAME           = GRP_CSS
DCR_GRP_N_EP           = 3
DCR_GRP_EP_ARR         = {0,1,2}
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           = 3
DCR_GRP_EP_ARR         = {0,1,2}
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_DB
DCR_GRP_N_EP           = 3
DCR_GRP_EP_ARR         = {0,1,2}
DCR_GRP_N_ERR_EP       = 0
DCR_GRP_ERR_EP_ARR     = {}
DCR_GRP_DSKCHK_CNT     = 60

[GRP_CSS]
DCR_EP_NAME        = CSS0
DCR_EP_HOST        = 192.168.20.51
DCR_EP_PORT        = 5336

[GRP_CSS]
DCR_EP_NAME        = CSS1
DCR_EP_HOST        = 192.168.20.52
DCR_EP_PORT        = 5336

[GRP_CSS]
DCR_EP_NAME        = CSS2
DCR_EP_HOST        = 192.168.20.53
DCR_EP_PORT        = 5336

[GRP_ASM]
DCR_EP_NAME        = ASM0
DCR_EP_SHM_KEY     = 93360
DCR_EP_SHM_SIZE    = 10
DCR_EP_HOST        = 192.168.20.51
DCR_EP_PORT        = 5436
DCR_EP_ASM_LOAD_PATH  = /dev/ASMDISK

[GRP_ASM]
DCR_EP_NAME        = ASM1
DCR_EP_SHM_KEY     = 93361
DCR_EP_SHM_SIZE    = 10
DCR_EP_HOST        = 192.168.20.52
DCR_EP_PORT        = 5436
DCR_EP_ASM_LOAD_PATH  = /dev/ASMDISK

[GRP_ASM]
DCR_EP_NAME        = ASM2
DCR_EP_SHM_KEY     = 93362
DCR_EP_SHM_SIZE    = 10
DCR_EP_HOST        = 192.168.20.53
DCR_EP_PORT        = 5436
DCR_EP_ASM_LOAD_PATH  = /dev/ASMDISK


[GRP_DB]
DCR_EP_NAME        = DB0
DCR_EP_SEQNO       = 0
DCR_EP_PORT        = 5236
DCR_CHECK_PORT     = 5536

[GRP_DB]
DCR_EP_NAME        = DB1
DCR_EP_SEQNO       = 1
DCR_EP_PORT        = 5236
DCR_CHECK_PORT     = 5536

[GRP_DB]
DCR_EP_NAME        = DB2
DCR_EP_SEQNO       = 2
DCR_EP_PORT        = 5236
DCR_CHECK_PORT     = 5536

3.5 应用参数

[dmdba@dsc1 dmdbms]$ dmasmcmd
dmasmcmd V8
ASM> extend dcrdisk '/dev/ASMDISK/dmdcr' from  '/dmdata/dmdbms/dmdcr_cfg_bak.ini'
ASMCMD extend node for dcr disk success.
ASMCMD extend node for vote disk success.
Used time: 83.879(ms).
ASM>help

3.6 扩展节点

[dmdba@dsc1 config]$ dmcssm ini_path=./dmcssm.ini
extend node
[monitor]          [2025-06-13 19:31:40:108] 执行扩展节点动作

4. 新节点启动服务

4.1 新节点注册服务

[root@localhost ~]# /dmdata/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dmdata/dmdbms/config/dmdcr.ini -p CSS
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServiceCSS.service to /usr/lib/systemd/system/DmCSSServiceCSS.service.
创建服务(DmCSSServiceCSS)完成
[root@localhost ~]# /dmdata/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdata/dmdbms/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServiceASM.service to /usr/lib/systemd/system/DmASMSvrServiceASM.service.
创建服务(DmASMSvrServiceASM)完成
 [root@localhost ~]# /dmdata/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdata/dmdbms/config/db2_config/dm.ini -dcr_ini /dmdata/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMS.service to /usr/lib/systemd/system/DmServiceDMS.service.
创建服务(DmServiceDMS)完成

4.2 新节点启动服务

[dmdba@localhost ~]$ DmCSSServiceCSS start
Starting DmCSSServiceCSS:                                  [ OK ]
[dmdba@localhost ~]$  DmASMSvrServiceASM start
Starting DmASMSvrServiceASM:                               [ OK ]
[dmdba@localhost ~]$ DmServiceDMS start
Starting DmServiceDMS                                      [ OK ]

4.3 查看集群

dmcssm ini_path=./dmcssm.ini
show

image.png

5. 修改CSSM监视器配置

[dmdba@dsc1 config]$ cat dmcssm.ini
CSSM_OGUID                 = 45331
CSSM_CSS_IP                = 192.168.20.51:5336
CSSM_CSS_IP                = 192.168.20.52:5336
CSSM_CSS_IP                = 192.168.20.53:5336
CSSM_LOG_PATH              = /dmdata/dmdbms/log
CSSM_LOG_FILE_SIZE         = 256
CSSM_LOG_SPACE_LIMIT       = 2048

四、 DMDSC下线节点

DMDSC集群不支持动态下线节点,尝试下线、调整参数、clear等方式,未能成功清理元数据信息。
后续在研究。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服