一、创建共享磁盘
1.1 命令行创建共享磁盘
需要提前创建E:\DSC_share目录,进到VMware目录执行
.\vmware-vdiskmanager.exe -c -s 15000Mb -a lsilogic -t 2 "E:\DSC_share\sharedisk.vmdk"

1.2 配置dmdsc0、dmdsc1两台虚拟机文件
进入文件目录,在.vmx中添加
disk.locking="FALSE"
scsi0:1.SharedBus="Virtual"
disk.locking="FALSE" 参数是设置虚拟磁盘的锁定行为。FALSE 表示禁用磁盘锁定,禁用磁盘锁定允许多个虚拟机同时访问同一个虚拟磁盘,这在一些特定的配置(例如共享磁盘集群)中是有用的。
scsi0:1.SharedBus="Virtual" 这个参数设置 SCSI 控制器 0 上的第 1 个设备(通常是虚拟磁盘)的共享总线行为。SharedBus="Virtual" 表示 SCSI 总线处于虚拟共享模式,使多个虚拟机可以共享同一个 SCSI 总线上的设备。
*找不到.vmx文件显示的时候打开显示后缀名*
1.3 虚拟机添加共享磁盘
两台虚拟机新增永久磁盘,两台虚拟机操作步骤相同 ,步骤如下
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1、点击编辑虚拟机设置
2、选择硬盘,点击添加
3、点击硬盘,点击下一步
4、选择磁盘类型,选择SCSI,点击下一步
5、选择使用现有虚拟磁盘,点击下一步
6、选择之前创建好的虚拟磁盘文件(根据自己创建的来),点击完成,最后选择保持现有格式
|
1.4、到控制节点机器中执行磁盘分区操作
开启虚拟机dmdsc0 ,执行fdisk -l命令查看系统新添加的磁盘信息
1、输入fdisk /dev/sdb进入划分命令
2、依次输入 n --> p--> 1--> 回车--> +1500M--> 回车,完成第一块磁盘划分
3、依次输入 n --> p--> 2--> 回车--> +4500M--> 回车,完成第二块磁盘划分
4、依次输入 n --> p--> 3--> 回车--> 回车-->回车,完成第三块磁盘划分
5、输入w,保存退出
1两个节点查看fdisk -l 查询结果应都包括新分区磁盘

1.5、两节点修改udev规则文件
所有节点都添加并执行命令重启后生效查看


二、部署DM应用
本文忽略可见DM数据库基础安装及使用_dm数据库安装及使用-CSDN博客
三、集群组件
3.1 配置 DCR 初始化配置文件(主节点修改即可)
dmdcr_cfg.ini 是格式化 DCR 磁盘和 Voting 磁盘的配置文件。配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。使用 dmasmcmd 工具初始化共享磁盘时,可以根据 dmdcr_cfg.ini 配置文件,格式化 DCR 和 Voting Disk。
dmdba用户添加以下内容
dmdba@localhost \~$ cd dm_config/
dmdba@localhost dm_config$ cat dmdcr_cfg.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 = DMCSS0
DCR_EP_HOST = 192.168.1.100
DCR_EP_PORT = 9341
GRP_CSS
DCR_EP_NAME = DMCSS1
DCR_EP_HOST = 192.168.1.101
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 = DMASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.1.100
DCR_EP_PORT = 7349
DCR_EP_ASM_LOAD_PATH = /dev/raw
GRP_ASM
DCR_EP_NAME = DMASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.1.101
DCR_EP_PORT = 7349
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 = DMDSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
GRP_DSC
DCR_EP_NAME = DMDSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
3.2、创建ASM磁盘
进行初始化之前对dmdba用户进行授权/dev/raw文件。
授权需要登录root用户,dmdsc0、dmdsc1两台机器都需要授权,执行以下命令:
bash
[root@localhost ~]# chown -R dmdba:dinstall /dev/raw
[root@localhost ~]# ll /dev/raw
total 0
crw-rw---- 1 dmdba dinstall 162, 1 Aug 29 21:28 raw1
crw-rw---- 1 dmdba dinstall 162, 2 Aug 29 21:28 raw2
crw-rw---- 1 dmdba dinstall 162, 3 Aug 29 21:28 raw3
crw-rw---- 1 dmdba dinstall 162, 0 Aug 29 21:28 rawctl
创建磁盘(dmdba用户执行)
bash
[root@localhost ~]# su - dmdba
Last login: Sat Aug 29 21:33:58 PDT 2026 on pts/1
[dmdba@localhost ~]$ cd dmdbms/bin
[dmdba@localhost bin]$ ./dmasmcmd
dmasmcmd V8
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[TRACE]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 6.206(ms).
ASM>create votedisk '/dev/raw/raw2' 'vote'
[TRACE]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 4.531(ms).
ASM>create asmdisk '/dev/raw/raw3' 'DATA0'
[TRACE]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMDATA0
Used time: 4.896(ms).
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dm/dm_config/dmdcr_cfg.ini'identified by 'Dwtest_11'
init votedisk '/dev/raw/raw2' from '/home/dmdba/dm/dm_config/dmdcr_cfg.ini'
3.3 、配置dmasvrmal.ini文件
bash
su - dmdba
cat /dm8/dmdata/dmasvrmal.ini
[MAL_INST0]
MAL_INST_NAME = DMASM0
MAL_HOST = 192.168.1.100
MAL_PORT = 7239
[MAL_INST1]
MAL_INST_NAME = DMASM1
MAL_HOST = 192.168.1.101
MAL_PORT = 7239
3.4 配置dmdcr.ini文件
使用dmdba用户配置 DCR 启动文件,两个节点都要操作,配置如下:
DSC0:
cpp
su - dmdba
cat /dm8/dmdata/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dm/dm_config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 60
DSC1:
cpp
su - dmdba
cat /dm8/dmdata/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dm/dm_config/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 60
3.5、启动集群DMCSS服务程序
复制启动脚本并修改配置文件目录后启动
cpp
[dmdba@localhost bin]$ cp service_template/DmCSSService ./DmCSSService0
[dmdba@localhost bin]$
[dmdba@localhost bin]$
[dmdba@localhost bin]$ vi ./DmCSSService0
[dmdba@localhost bin]$ cat ./DmCSSService0|grep dcr
DCR_INI_PATH=/home/dmdba/dm/dm_config/dmdcr.ini
STARTUP_PARAMS="dcr_ini=\"$DCR_INI_PATH\""
PS_STARTUP_PARAMS="dcr_ini=$DCR_INI_PATH"
elif [ "$1" = "dcr_ini" ]
[dmdba@localhost bin]$ ./DmCSSService0 status
DmCSSService0 (pid 26787) is running.
3.6、启动集群DMASM服务程序
同上也是复制启动脚本并修改配置文件目录后启动
bash
[dmdba@localhost bin]$ cp service_template/DmASMSvrService ./DmASMSvrServiceDMASM0
[dmdba@localhost bin]$ cat DmASMSvrServiceDMASM0 |grep -i dcr_ini_path=
DCR_INI_PATH=/home/dmdba/dm/dm_config/dmdcr.ini
[dmdba@localhost bin]$
[dmdba@localhost bin]$ ./DmASMSvrServiceDMASM0 status
DmASMSvrServiceDMASM0 (pid 26905) is running.
[dmdba@localhost bin]$
3.7、使用 dmasmtool 工具创建 DMASM 磁盘组
其中一个节点即可
cpp
[dmdba@localhost bin]$ ./dmasmtool dcr_ini=/home/dmdba/dm/dm_config/dmdcr.ini
dmasmtool V8
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw3'
Used time: 22.603(ms).
ASM>exit
3.8、使用 dminit 初始化共享存储集群数据库实例
创建dminit.ini初始化配置文件,根据配置文件初始化实例
cpp
[dmdba@localhost ~]$ cd dm_config/
[dmdba@localhost dm_config]$ vi dminit.ini
[dmdba@localhost dm_config]$ cat dminit.ini
db_name = DAMENG
system_path = +DMDATA/
system = +DMDATA/DAMENG/system.dbf
system_size = 128
roll = +DMDATA/DAMENG/roll.dbf
roll_size = 128
main = +DMDATA/DAMENG/main.dbf
main_size = 128
ctl_path = +DMDATA/DAMENG/dm.ctl
ctl_size = 8
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
[DMDSC0]
config_path= /home/dmdba/dm/dm_config/conf0
port_num = 5236
mal_host = 192.169.1.00
mal_port = 9255
log_path = +DMDATA/dsc0_01.log
log_path = +DMDATA/dsc0_02.log
log_size = 2048
page_size= 32
extent_size=16
case_sensitive=Y
RLOG_GEN_FOR_HUGE=0
SYSDBA_PWD=Dwtest_11
SYSAUDITOR_PWD=Dwtest_11
[DMDSC1]
config_path= /home/dmdba/dm/dm_config/conf1
port_num = 5236
mal_host = 192.169.1.101
mal_port = 9266
log_path = +DMDATA/dsc1_01.log
log_path = +DMDATA/dsc1_02.log
log_size = 2048
page_size= 32
extent_size=16
case_sensitive=Y
RLOG_GEN_FOR_HUGE=0
SYSDBA_PWD=Dwtest_11
SYSAUDITOR_PWD=Dwtest_11
[root@localhost bin]# ./dminit control=/home/dmdba/dm/dm_config/dminit.ini
initdb V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2026-09-17
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: +DMDATA/dsc0_01.log
log file path: +DMDATA/dsc0_02.log
log file path: +DMDATA/dsc1_01.log
log file path: +DMDATA/dsc1_02.log
write to dir [+DMDATA/DAMENG].
create dm database success. 2026-08-29 22:52:16
3.9、启动集群DMDSC实例
cpp
[dmdba@localhost bin]$ ./dmserver /home/dmdba/dm/dm_config/conf0/dm.ini dcr_ini=/home/dmdba/dm/dm_config/dmdcr.ini
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 1448
nsql_vm_t = 328
prjt2_vm_t = 176
ltid_vm_t = 216
nins2_vm_t = 1144
nset2_vm_t = 272
ndlck_vm_t = 192
ndel2_vm_t = 768
slct2_vm_t = 352
nli2_vm_t = 200
aagr2_vm_t = 304
pscn_vm_t = 416
dist_vm_t = 992
DM Database Server 64 V8 05134284368-20250917-293539-20149 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2026-09-17
su - dmdba
cd /dm8/dminstall/bin
./disql
# 执行下面sql,查看集群信息:
select * from v$dsc_ep_info;
