DMDSC集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,联机日志和归档日志都需要保存在共享存储上。
本文主要介绍在没有服务器、网络、存储等专用设备的情况下,采用虚拟机进行达梦数据库DMDSC两节点的搭建,供学习使用。
虚拟机:VMware17.5.1 build-23298084
操作系统:openEuler-22.03-LTS-SP4
达梦版本:03134284368-20250430-272000-20149
准备两台虚拟机node01、node02用来部署DSC集群。其中网络采用单网卡。详细信息如下:
主机名:node01、node02
CPU:2核
内存:2G
业务地址:192.168.161.151、192.168.161.152
心跳地址:192.168.161.152、192.168.161.152
安装目录:/dm8/dmdbms
实例目录:/dm8/dminst
配置文件:/dm8/dmconfig
CSS: 9341
ASM: 9349
INSTANCE: 5236
ASMMAL: 4836
INSTANCEMAL: 9340
DCR盘: 5G
VOTE盘: 5G
LOG盘: 10G
DATA盘: 10G
在node01、node02虚拟机目录以记事本中打开node01.vmx、node01.vmx文件,添加disk.locking="false",disk.EnableUUID = "TRUE"。disk.locking用于解锁磁盘锁定,disk.EnableUUID用于启用磁盘uuid。
1、在虚拟机面板编辑node01,添加磁盘,磁盘大小5G,选择存储为单个文件,立即分配磁盘空间。
2-1磁盘设置
2、添加完磁盘以后,点击高级,修改磁盘为独立、永久。
2-2磁盘高级设置
3、继续按照步骤添加其它磁盘。磁盘添加完以后记录磁盘文件路径。
2-3磁盘文件路径
4、在虚拟机面板编辑node02,添加磁盘,选择使用现有虚拟磁盘。
2-4磁盘选择
5、输入已经添加的磁盘文件。
2-5磁盘文件选择
1、分别启动node01、node02,通过终端输入lsblk -p 查看磁盘命令,并使用/usr/lib/udev/scsi_id -g -u /dev/sd* 查看磁盘uuid。
2-6 node01磁盘uuid
2-7 node02磁盘uuid
2、记录node01、node02的磁盘uuid,并在node01、node02中添加用户dmdba、组dinstall。
2-8 node01用户及组
2-9 node02用户及组
3、在node01、node02中/etc/udev/rules.d创建udev规则99-raw.rules,输入相关规则,两台虚拟机规则一样,规则如下:
ACTION=="add",ENV{ID_SERIAL}"36000c290a7aa39743447f29d867b460c", SUBSYSTEM"block", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",ENV{ID_SERIAL}"36000c29d53cac570439391cd72ea0beb", SUBSYSTEM"block", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",ENV{ID_SERIAL}"36000c29d60f8e8fefa1bf69e05debbfd", SUBSYSTEM"block", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",ENV{ID_SERIAL}"36000c29a15656c30dfc9ec2dca8c7988", SUBSYSTEM"block", RUN+="/bin/raw /dev/raw/raw4 %N"
KERNEL=="raw[0-9]*", SUBSYSTEM=="raw", OWNER="dmdba", GROUP="dinstall", MODE="0660"
2-10 node01文件规则
2-11 node02文件规则
4、添加完规则,两台主机执行udevadm control --reload-rules&udevadm trigger --action=add。
2-12 node01命令执行
2-13 node02命令执行
5、执行完毕以后,使用执行ll /dev/raw 查看裸设备信息。
2-14 node01裸设备信息
2-15 node02裸设备信息
至此,磁盘共享磁盘操作执行完毕,可以进入DMDSC搭建步骤。
在node01、node01分别安装达梦数据库,数据库安装路径参照1.3环境说明,安装步骤参考达梦数据库安装,具体安装步骤在此不再赘述。
1、在node01准备配置文件dmdcr_cfg.ini、dmdcr.ini、dmasvrmal.ini、dminit.ini、dmcssm.ini,配置文件如下:
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.161.151
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.161.152
DCR_EP_PORT = 9341
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.161.151
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.161.152
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = dmdsc01
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = dmdsc02
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmconfig/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/dmconfig/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/dminst/dsc0_config/dm.ini dcr_ini=/dm8/dmconfig/dmdcr.ini
[MAL_INST1]
MAL_INST_NAME= ASM0
MAL_HOST= 192.168.161.151
MAL_PORT= 4836
[MAL_INST2]
MAL_INST_NAME= ASM1
MAL_HOST= 192.168.161.152
MAL_PORT= 4836
db_name = DSC
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 2048
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
PAGE_SIZE = 32
EXTENT_SIZE = 32
SYSDBA_PWD=Dameng@8888
SYSAUDITOR_PWD=Dameng@8888
CHARSET=0
[dmdsc01]
config_path = /dm8/dminst/dsc0_config
port_num = 5236
mal_host = 192.168.161.151
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[dmdsc02]
config_path = /dm8/dminst/dsc1_config
port_num = 5236
mal_host = 192.168.161.152
mal_port = 9340
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
CSSM_OGUID = 63635
CSSM_CSS_IP = 192.168.161.151:9341
CSSM_CSS_IP = 192.168.161.152:9341
CSSM_LOG_PATH =/dm8/log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0
2、将node01准备配置文件dmdcr.ini、dmasvrmal.ini,传送到node02中的/dm8/dmconfig目录:
4-1 node02配置文件准备
3、对dmdcr.ini文件进行修改,修改后文件如下:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmconfig/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/dmconfig/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/dminst/dsc1_config/dm.ini dcr_ini=/dm8/dmconfig/dmdcr.ini
1、在node01机器使用 DMASMCMD 工具初始化所有磁盘,初始化命令如下:
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG0'
create asmdisk '/dev/raw/raw4' 'DATA0'
init dcrdisk '/dev/raw/raw1' from '/dm8/dmconfig/dmdcr_cfg.ini' identified by 'Dameng8888'
init votedisk '/dev/raw/raw2' from '/dm8/dmconfig/dmdcr_cfg.ini'
4-2 磁盘初始化
2、分别启动node01、node02的启动 DMCSS、DMASM 服务程序,命令如下:
./dmcss DCR_INI=/dm8/dmconfig/dmdcr.ini
./dmasmsvr DCR_INI=/dm8/dmconfig/dmdcr.ini
4-3 node01 dmcss
4-4 node02 dmcss
4-5 node01 dmasmvr
4-6 node02 dmasmvr
3、在node01主机,进入/dm8/dmdbms/bin,使用 DMASMTOOL 工具创建 ASM 磁盘组,命令如下:
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
4-7 创建磁盘组
4、在node01主机,进入/dm8/dmdbms/bin使用dminit初始化DB环境,命令如下:
./dminit control=/dm8/dmconfig/dminit.ini
4-8 初始化实例
5、执行完初始化会在/dm8/dminst生成dsc0_config、dsc1_config文件夹,将dsc1_config传输到node02主机/dm8/dminst目录:
4-9 node02实例传输
6、在node01、node02主机,进入/dm8/dmdbm/bin目录,启动数据库服务,命令如下:
./dmserver /dm8/dminst/dsc0_config/dm.ini dcr_ini=/dm8/dmconfig/dmdcr.ini
./dmserver /dm8/dminst/dsc1_config/dm.ini dcr_ini=/dm8/dmconfig/dmdcr.ini
4-10 node01实例启动
4-11 node02实例启动
至此,DMDSC集群搭建完毕,在node01主机,进入/dm8/dmdbm/bin目录,启动监视器,查看目前集群运行状态。
./dmcssm ini_path=/dm8/dmconfig/dmcssm.ini
4-12 监视器启动
执行show查看集群运行状态
4-13 集群运行状态
在node01登录数据库执行验证,验证过程如下:
进入/dm8/dmdbms/bin目录,./dmasmtool DCR_INI=/dm8/dmconfig/dmdcr.ini启动dmasmtool,查看磁盘信息进行验证。
4-14 集群磁盘信息
进入/dm8/dmdbms/bin目录,登录数据库,执行 SELECT GROUP_ID,DISK_ID,DISK_NAME,DISK_PATH,SIZE,FREE_MB,STATUS FROM V$ASMDISK,SELECT * FROM V$DSC_EP_INFO:
4-15 集群磁盘及节点信息
分别进入主机node01、node02目录/dm8/dmdbms/script/root,对dmcss dmasmsvr dmserver进行服务注册,服务要按照dmcss dmasmsvr dmserver顺序注册,命令如下:
./dm_service_installer.sh -t dmcss -dcr_ini /dm8/dmconfig/dmdcr.ini -p DSC01
./dm_service_installer.sh -t dmcss -dcr_ini /dm8/dmconfig/dmdcr.ini -p DSC02
./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dmconfig/dmdcr.ini -p DSC01 -y DmCSSServiceDSC01
./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dmconfig/dmdcr.ini -p DSC02 -y DmCSSServiceDSC02
./dm_service_installer.sh -t dmserver -dcr_ini /dm8/dmconfig/dmdcr.ini -dm_ini /dm8/dminst/dsc0_config/dm.ini -p DSC01 -y DmCSSServiceDSC01
./dm_service_installer.sh -t dmserver -dcr_ini /dm8/dmconfig/dmdcr.ini -dm_ini /dm8/dminst/dsc1_config/dm.ini -p DSC02 -y DmCSSServiceDSC02
4-16 node01服务注册
4-17 node02服务注册
DMDSC集群按照dmcss 、dmasmsvr、dmserver顺序启动服务,停止按照dmserver、dmasmsvr、dmcss顺序进行关闭。
文章
阅读量
获赞