达梦数据共享集群(DMDSC)安装部署实战
通过公司核心系统与达梦数据库适配的POC机会,让我深入学习了达梦数据共享集群(DMDSC)架构。本文基于官方文档《DMDSC 安装部署指南》,结合实际操作记录整个部署过程并分享出来,希望能为有需要的小伙伴提供参考和帮助。😊
一、环境准备
1.2 软硬件资源
1.2.1 硬件配置信息如下
| 硬件类别 | 硬件名称 | 配置 | 数量 |
|---|---|---|---|
| 数据库服务器 | VMware Virtual Machine | CPU:AMD Ryzen 9 5950X 内存:8GB | 2 |
| 存储服务器 | VMware Virtual Machine | CPU:AMD Ryzen 9 5950X 内存:4GB | 1 |
1.2.2 软件配置信息如下
| 软件类别 | 软件名称 | 版本 |
|---|---|---|
| 操作系统 | CentOS Linux release 7.9.2009 (Core) | 内核3.10.0-1160.71.1.el7.x86_64 |
| 数据库 | 达梦数据库 | DB Version: 0x7000d 03134284404-20250801-286012-20164 DSC Version: V2.0 Msg Version: 49 |
| 存储网络 | Openfiler | Openfiler NAS/SAN Appliance, version 2.99 |
1.2.3 拓扑结构

1.3 主机名IP规划
| 节点名称 | 公共IP地址 | 专用IP地址 | 备注 |
|---|---|---|---|
| dmdsc1 | 192.168.17.11 | 10.18.18.11 | 数据库节点1 |
| dmdsc2 | 192.168.17.12 | 10.18.18.12 | 数据库节点2 |
| openfiler | 192.168.17.234 | 存储网络 |
1.4 用户准备
使用 root 用户创建用于搭建环境的用户和组,以下192.168.17.11,192.168.17.12两机器都要做。
#新建组dmdba
groupadd dmdba
#在组dmdba(第一个)中创建一个用户dmdba(第二个)
useradd -g dmdba dmdba
#为用户dmdba设置密码
passwd dmdba
#用户输入密码
dmdba
1.5 目录与存储规划
1.5.1 本地磁盘规划
| 名称 | 拟定配置 | 备注 |
|---|---|---|
| 数据库安装目录 | /home/dmdba/dmdsc | 数据库安装路径,存放数据库运行日志等信息 |
| 数据库备份目录 | /home/dmdba/dmbak | 用于存放数据库备份文件 |
| 数据库SQL日志目录 | /home/dmdba/dmdsc/log | 用于存放数据库dmsql日志 |
| 集群配置文件目录 | /home/dmdba/dmdsc/data | 用于存放数据库集群配置文件 |
1.5.2 共享存储规划
| 名称 | 拟定配置 | 分区大小 | 备注 |
|---|---|---|---|
| DCR | /dev_DSC2/DCR:/dev/sdd1 | 5GB | 用于存储、维护集群配置的详细信息,整个集群环境共享 DCR 配置信息 |
| VOTE | /dev_DSC2/VOTE:/dev/sde1 | 5GB | 记录集群成员信息,集群通过 Voting Disk 进行心跳检测,确定集群中节点的状态 |
| LOG | /dev_DSC2/DMLOG:/dev/sdg1 | 30GB | 用于存储数据库集群Redo log |
| DATA | /dev_DSC2/DMDATA:/dev/sdc1 | 30GB | 用户存放数据 |
| ARCH | /dev_DSC2/DMARCH:/dev/sdf1 | 30GB | 用于存储数据库集群各实例的归档日志 |
DMDSC集群是为了实现多实例同时访问和修改数据,因此要求数据文件、控制文件和日志文件放到共享存储上。DM支持两种共享存储,裸设备和DMASM,裸设备是未经过格式化的特殊字符设备;DMASM是在裸设备基础上部署了文件系统,便于对裸设备上的磁盘和文件进行管理。
VOTE是表决磁盘,记录集群成员的信息,对节点的心跳信息进行检测,确定节点的状态;表决磁盘还用来传递命令,通知节点执行相应命令,只支持裸设备,一个集群一个表决磁盘。
DCR是DM 集群注册表的简称,用于存储、维护集群配置的详细信息,整个集群环境共享 DCR 配置信息,包括 DMDSC、DMASM、DMCSS资源,包括实例名、监听端口、集群中故障节点信息等,只支持裸设备,一个集群一个注册表。
1.5.3 共享存储挂载
1.5.3.1 共享磁盘裸设备划分
[root@dmdsc1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 59G 0 part
├─centos-root 253:0 0 55.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 19.1G 0 disk
sdc 8:32 0 28.6G 0 disk
sdd 8:48 0 4.8G 0 disk
sde 8:64 0 4.8G 0 disk
sdf 8:80 0 28.6G 0 disk
sdg 8:96 0 28.6G 0 disk
sr0 11:0 1 4.4G 0 rom
[root@dmdsc1 ~]#
#fdisk分别对sdc,sdd,sde,sdf,sdg这几块盘做分区
#依次输入 n -> p ->1 ->回车 ->回车 ->w保存退出,完成每一块磁盘划分
[root@dmdsc1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 59G 0 part
├─centos-root 253:0 0 55.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 19.1G 0 disk
sdc 8:32 0 28.6G 0 disk
└─sdc1 8:33 0 28.6G 0 part
sdd 8:48 0 4.8G 0 disk
└─sdd1 8:49 0 4.8G 0 part
sde 8:64 0 4.8G 0 disk
└─sde1 8:65 0 4.8G 0 part
sdf 8:80 0 28.6G 0 disk
└─sdf1 8:81 0 28.6G 0 part
sdg 8:96 0 28.6G 0 disk
└─sdg1 8:97 0 28.6G 0 part
sr0 11:0 1 4.4G 0 rom
[root@dmdsc1 ~]#
1.5.3.2 udev绑定块设备
1.5.3.2.1 通过 scsi_id 获取磁盘信息
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc1
14f504e46494c45525732313256352d516f53422d644c4a4b
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd1
14f504e46494c45526d4e7150565a2d314147582d58655444
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sde1
14f504e46494c455253434d6a36372d6674634e2d566e384d
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdf1
14f504e46494c455269343938586c2d424d54332d754f3274
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdg1
14f504e46494c4552366b444850622d596774752d5a597659
[root@dmdsc1 ~]#
本步骤的目的是为了在下一步中将相同 scsi_id 的磁盘创建相同的盘符。例如,下一步骤中 RESULT=="14f504e46494c45526d4e7150565a2d314147582d58655444"即为将 scsi_id 为14f504e46494c45526d4e7150565a2d314147582d58655444的磁盘命名为 DCR 磁盘,并将 DCR 磁盘软链接到/dev_DSC2 目录下并命名为 DCR。
1.5.3.2.2 创建磁盘链接
编写/etc/udev/rules.d/66-dmdevices.rules 配置信息,创建磁盘链接。书写时一个 KERNEL 为一行,不能换行。
[root@dmdsc1 ~]# cat /etc/udev/rules.d/66-dmdevices.rules
## DCR磁盘配置,且在软链接之前创建文件夹 /dev_DSC2
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526d4e7150565a2d314147582d58655444",SYMLINK+="DCR", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;mkdir -p /dev_DSC2; ln -s /dev/DCR /dev_DSC2/DCR'"
## VOTE 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c455253434d6a36372d6674634e2d566e384d",SYMLINK+="VOTE", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC2/VOTE'"
## DMDATA 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45525732313256352d516f53422d644c4a4b",SYMLINK+="DMDATA", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC2/DMDATA'"
## DMARCH 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c455269343938586c2d424d54332d754f3274",SYMLINK+="DMARCH", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMARCH /dev_DSC2/DMARCH ; chown -R dmdba:dmdba /dev_DSC2'"
## DMLOG 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba组的dmdba用户
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c4552366b444850622d596774752d5a597659",SYMLINK+="DMLOG", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC2/DMLOG ; chown -R dmdba:dmdba /dev_DSC2'"
[root@dmdsc1 ~]#
从配置信息可以看出,通过 scsi id 找到磁盘后,在 /dev/下命名了磁盘信息,然后再做软链接到 /dev_DSC2 下。软链接的目录可以是/dev 下的独立目录,也可以是其他自行创建的独立目录,例如本例中的/dev_DSC2,目录路径必须以“/dev”开始,否则 DM 不会认为这是使用物理磁盘的真实环境。
之所以要软链接到独立目录,是因为 DMDSC 启动时会扫描目录下所有磁盘,如果目录中存在与当前 DMDSC 系统 GROUP_ID/DISK_ID 有冲突的磁盘(例如存在两块 GROUP_ID=0 且 DISK_ID=0 的磁盘),则 DMDSC 将启动失败。因此需要软链接到独立目录,保证该目录下仅包含当前 DMDSC 系统使用的共享存储磁盘,避免 DMDSC 启动失败。
以上配置在192.168.17.11和192.168.17.12机器完全相同,2 台机器均完成之后,进行下一步。
1.5.3.2.3 重启 systemd-udev-trigger 服务
#2个数据库节点都需要重启服务
[root@dmdsc1 ~]# systemctl restart systemd-udev-trigger
[root@dmdsc2 ~]# systemctl restart systemd-udev-trigger
重启服务后,搭建之前磁盘权限信息如下:
[root@dmdsc1 ~]# ls -lth /dev_DSC2/
total 0
lrwxrwxrwx 1 dmdba dmdba 11 Sep 9 15:03 DMDATA -> /dev/DMDATA
lrwxrwxrwx 1 dmdba dmdba 9 Sep 9 15:03 VOTE -> /dev/VOTE
lrwxrwxrwx 1 dmdba dmdba 11 Sep 9 15:03 DMARCH -> /dev/DMARCH
lrwxrwxrwx 1 dmdba dmdba 10 Sep 9 15:03 DMLOG -> /dev/DMLOG
lrwxrwxrwx 1 dmdba dmdba 8 Sep 9 15:03 DCR -> /dev/DCR
[root@dmdsc1 ~]#
[root@dmdsc2 ~]# ls -lth /dev_DSC2/
total 0
lrwxrwxrwx 1 dmdba dmdba 10 Sep 9 15:03 DMLOG -> /dev/DMLOG
lrwxrwxrwx 1 dmdba dmdba 11 Sep 9 15:03 DMARCH -> /dev/DMARCH
lrwxrwxrwx 1 dmdba dmdba 9 Sep 9 15:03 VOTE -> /dev/VOTE
lrwxrwxrwx 1 dmdba dmdba 11 Sep 9 15:03 DMDATA -> /dev/DMDATA
lrwxrwxrwx 1 dmdba dmdba 8 Sep 9 15:03 DCR -> /dev/DCR
[root@dmdsc2 ~]#
1.6 环境前置检查
1.6.1 操作系统检查
查询操作系统信息
[root@dmdsc1 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@dmdsc1 ~]#
1.6.2 CPU检查
查询型号命令,查询CPU核数
[root@dmdsc1 ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 4
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 25
Model: 33
Model name: AMD Ryzen 9 5950X 16-Core Processor
Stepping: 2
CPU MHz: 3399.997
BogoMIPS: 6799.99
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 512K
L3 cache: 32768K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext retpoline_amd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero arat umip pku ospke vaes vpclmulqdq overflow_recov succor
[root@dmdsc1 ~]# cat /proc/cpuinfo | grep physical | uniq -c
1 physical id : 0
1 address sizes : 45 bits physical, 48 bits virtual
1 physical id : 2
1 address sizes : 45 bits physical, 48 bits virtual
1 physical id : 4
1 address sizes : 45 bits physical, 48 bits virtual
1 physical id : 6
1 address sizes : 45 bits physical, 48 bits virtual
[root@dmdsc1 ~]#
1.6.3 内存大小检查
[root@dmdsc1 ~]# free -h
total used free shared buff/cache available
Mem: 7.8G 447M 6.0G 14M 1.4G 7.1G
Swap: 3.9G 0B 3.9G
[root@dmdsc1 ~]#
1.6.4 磁盘挂载情况检查
[root@dmdsc1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 56G 5.7G 50G 11% /
/dev/sda1 1014M 174M 841M 18% /boot
tmpfs 797M 12K 797M 1% /run/user/42
tmpfs 797M 0 797M 0% /run/user/0
[root@dmdsc1 ~]#
1.6.5 网卡信息检查
[root@dmdsc1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.17.11 netmask 255.255.255.0 broadcast 192.168.17.255
ether 00:0c:29:04:77:df txqueuelen 1000 (Ethernet)
RX packets 740540 bytes 1040726289 (992.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 59242 bytes 6110082 (5.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.18.18.11 netmask 255.255.255.0 broadcast 10.18.18.255
ether 00:0c:29:04:77:e9 txqueuelen 1000 (Ethernet)
RX packets 181 bytes 27478 (26.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19 bytes 2684 (2.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 12 bytes 840 (840.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 840 (840.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@dmdsc1 ~]#
1.6.6 ulimit资源检查
[root@dmdsc1 ~]# vi /etc/security/limits.conf
#添加如下
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard data unlimited
dmdba soft data unlimited
dmdba hard fsize unlimited
dmdba soft fsize unlimited
dmdba soft stack 65536
dmdba hard stack 65536
1.6.7 关闭防火墙及SELinux
[root@dmdsc1 ~]# systemctl stop firewalld
[root@dmdsc1 ~]# systemctl disable firewalld
[root@dmdsc1 ~]# vi /etc/selinux/config
将SELINUX=enable改为SELINUX=disabled
[root@dmdsc1 ~]# setenforce 0
setenforce: SELinux is disabled
[root@dmdsc1 ~]#
1.6.8 Swap设置
# 临时关闭
swapoff /mnt/swap
vi /etc/fstab
# 注释 /mnt/swap swap swap defaults 0 0
free -m # swap 为0 表示关闭成功
# 调整swappiness 参数
echo 0 > /proc/sys/vm/swappiness
vim /etc/sysctl.conf
vm.swappiness=0
sysctl -p # 使配置生效
1.6.9 信号量相关设置
麒麟v10操作系统需要检查systemd的配置,避免共享信号量被移除的问题。
# 将RemoveIPC参数设置为NO
[root@dmdsc1 ~]# cat /etc/systemd/logind.conf
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
RemoveIPC=no
#UserTasksMax=
[root@dmdsc1 ~]# systemctl daemon-reload
[root@dmdsc1 ~]# systemctl restart systemd-logind
[root@dmdsc1 ~]#
二、DMDSC部署过程
2.1 安装DMDSC软件
可参考《DM8安装手册》。和单机安装相同
2个节点数据库机器都要做。
使用 dmdba 用户创建用于 DSC 环境搭建的目录:/home/dmdba/dmdsc。
DM 执行码和工具存放于目录:/home/dmdba/dmdsc/bin。
安装过程如下:
[root@dmdsc1 ~]# mount -o loop dm8_20250811_x86_centos7_64.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
[root@dmdsc1 ~]# su - dmdba
[dmdba@dmdsc1 ~]$ /mnt/DMInstall.bin -i
Installer Language:
[1]: 简体中文
[2]: English
Please select the installer's language [2]:1
解压安装程序..........
硬件架构校验通过!
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1783M
请选择安装目录 [/home/dmdba/dmdbms]:/home/dmdba/dmdsc
可用空间: 47G
是否确认安装路径(/home/dmdba/dmdsc)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /home/dmdba/dmdsc
所需空间: 1783M
可用空间: 47G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2025-09-09 16:27:34
[INFO] 安装达梦数据库...
2025-09-09 16:27:34
[INFO] 安装 基础 模块...
2025-09-09 16:27:39
[INFO] 安装 服务器 模块...
2025-09-09 16:27:40
[INFO] 安装 客户端 模块...
2025-09-09 16:27:42
[INFO] 安装 驱动 模块...
2025-09-09 16:27:44
[INFO] 安装 手册 模块...
2025-09-09 16:27:44
[INFO] 安装 服务 模块...
2025-09-09 16:27:45
[INFO] 移动日志文件。
2025-09-09 16:27:45
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/home/dmdba/dmdsc/script/root/root_installer.sh
安装结束
[dmdba@dmdsc1 ~]$ exit
logout
[root@dmdsc1 ~]# /home/dmdba/dmdsc/script/root/root_installer.sh
移动 /home/dmdba/dmdsc/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@dmdsc1 ~]#
[root@dmdsc2 ~]# mount -o loop dm8_20250811_x86_centos7_64.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
[root@dmdsc2 ~]# su - dmdba
[dmdba@dmdsc2 ~]$ /mnt/DMInstall.bin -i
Installer Language:
[1]: 简体中文
[2]: English
Please select the installer's language [2]:1
解压安装程序..........
硬件架构校验通过!
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1783M
请选择安装目录 [/home/dmdba/dmdbms]:/home/dmdba/dmdsc
可用空间: 47G
是否确认安装路径(/home/dmdba/dmdsc)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /home/dmdba/dmdsc
所需空间: 1783M
可用空间: 47G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2025-09-09 16:30:00
[INFO] 安装达梦数据库...
2025-09-09 16:30:00
[INFO] 安装 基础 模块...
2025-09-09 16:30:04
[INFO] 安装 服务器 模块...
2025-09-09 16:30:05
[INFO] 安装 客户端 模块...
2025-09-09 16:30:07
[INFO] 安装 驱动 模块...
2025-09-09 16:30:08
[INFO] 安装 手册 模块...
2025-09-09 16:30:08
[INFO] 安装 服务 模块...
2025-09-09 16:30:09
[INFO] 移动日志文件。
2025-09-09 16:30:09
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/home/dmdba/dmdsc/script/root/root_installer.sh
安装结束
[dmdba@dmdsc2 ~]$ exit
logout
[root@dmdsc2 ~]# /home/dmdba/dmdsc/script/root/root_installer.sh
移动 /home/dmdba/dmdsc/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@dmdsc2 ~]#
2.2 配置文件 DMDCR_CFG.INI
搭建的配置文件分别存放于192.168.17.11机器的/home/dmdba/dmdsc/data/DSC01 和192.168.17.12机器的/home/dmdba/dmdsc/data/DSC02下。
#准备配置文件DMDCR_CFG.INI文件,保存到192.168.17.11机器的/home/dmdba/dmdsc/data/DSC01下
[dmdba@dmdsc1 ~]$ mkdir -p /home/dmdba/dmdsc/data/DSC01
[dmdba@dmdsc1 ~]$ vi /home/dmdba/dmdsc/data/DSC01/DMDCR_CFG.INI
[dmdba@dmdsc1 ~]$ cat /home/dmdba/dmdsc/data/DSC01/DMDCR_CFG.INI
DCR_N_GRP= 3
DCR_VTD_PATH=/dev_DSC2/VOTE
DCR_OGUID= 1071107589
[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 = 10.18.18.11
DCR_EP_PORT = 9836
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.18.18.12
DCR_EP_PORT = 9837
[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= 64735
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 10.18.18.11
DCR_EP_PORT= 5836
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[GRP_ASM]
DCR_EP_NAME= ASM1
DCR_EP_SHM_KEY= 54736
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 10.18.18.12
DCR_EP_PORT= 5837
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[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= DSC01
DCR_EP_SEQNO= 0
DCR_EP_PORT= 6636
[GRP_DSC]
DCR_EP_NAME= DSC02
DCR_EP_SEQNO= 1
DCR_EP_PORT= 6637
[dmdba@dmdsc1 ~]$
[dmdba@dmdsc2 ~]$ mkdir -p /home/dmdba/dmdsc/data/DSC02
[dmdba@dmdsc2 ~]$ vi /home/dmdba/dmdsc/data/DSC02/DMDCR_CFG.INI
[dmdba@dmdsc2 ~]$ cat /home/dmdba/dmdsc/data/DSC02/DMDCR_CFG.INI
DCR_N_GRP= 3
DCR_VTD_PATH=/dev_DSC2/VOTE
DCR_OGUID= 1071107589
[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 = 10.18.18.11
DCR_EP_PORT = 9836
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.18.18.12
DCR_EP_PORT = 9837
[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= 64735
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 10.18.18.11
DCR_EP_PORT= 5836
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[GRP_ASM]
DCR_EP_NAME= ASM1
DCR_EP_SHM_KEY= 54736
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 10.18.18.12
DCR_EP_PORT= 5837
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[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= DSC01
DCR_EP_SEQNO= 0
DCR_EP_PORT= 6636
[GRP_DSC]
DCR_EP_NAME= DSC02
DCR_EP_SEQNO= 1
DCR_EP_PORT= 6637
[dmdba@dmdsc2 ~]$
注意这里和下面所有的配置IP都用内网的私有IP地址
2.3 初始化磁盘组
在192.168.17.11机器使用 DMASMCMD 工具初始化所有磁盘。
[dmdba@dmdsc1 ~]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc1 bin]$ ./dmasmcmd
dmasmcmd V8
ASM>create dcrdisk '/dev_DSC2/DCR' 'DCR'
[TRACE]The ASM initialize dcrdisk /dev_DSC2/DCR to name DMASMDCR
Used time: 38.776(ms).
ASM>create votedisk '/dev_DSC2/VOTE' 'VOTE'
[TRACE]The ASM initialize votedisk /dev_DSC2/VOTE to name DMASMVOTE
Used time: 106.957(ms).
ASM>create asmdisk '/dev_DSC2/DMDATA' 'DMDATA'
[TRACE]The ASM initialize asmdisk /dev_DSC2/DMDATA to name DMASMDMDATA
Used time: 78.371(ms).
ASM>create asmdisk '/dev_DSC2/DMLOG' 'DMLOG'
[TRACE]The ASM initialize asmdisk /dev_DSC2/DMLOG to name DMASMDMLOG
Used time: 87.458(ms).
ASM>create asmdisk '/dev_DSC2/DMARCH' 'DMARCH'
[TRACE]The ASM initialize asmdisk /dev_DSC2/DMARCH to name DMASMDMARCH
Used time: 76.050(ms).
ASM>init dcrdisk '/dev_DSC2/DCR' from '/home/dmdba/dmdsc/data/DSC01/DMDCR_CFG.INI' identified by 'DCRpsd_123'
[TRACE]DG 126 alloc extent for inode (0, 0, 1)
[TRACE]DG 126 alloc 4 extents for 0xfe000002 (0, 0, 2)->(0, 0, 5)
Used time: 793.974(ms).
ASM>init votedisk '/dev_DSC2/VOTE' from '/home/dmdba/dmdsc/data/DSC01/DMDCR_CFG.INI'
[TRACE]DG 125 alloc extent for inode (0, 0, 1)
[TRACE]DG 125 alloc 4 extents for 0xfd000002 (0, 0, 2)->(0, 0, 5)
Used time: 322.355(ms).
ASM>exit
[dmdba@dmdsc1 bin]$
2.4 配置文件 DMASVRMAL.INI
准备 DMASM 的 MAL 配置文件 DMASVRMAL.INI,分别保存到192.168.17.11的/home/dmdba/dmdsc/data/DSC01 和192.168.17.12 的/home/dmdba/dmdsc/data/DSC02下
[dmdba@dmdsc1 bin]$ vi /home/dmdba/dmdsc/data/DSC01/dmasvrmal.ini [dmdba@dmdsc1 bin]$ cat /home/dmdba/dmdsc/data/DSC01/dmasvrmal.ini [MAL_INST1] MAL_INST_NAME= ASM0 MAL_HOST= 10.18.18.11 MAL_PORT= 4836 [MAL_INST2] MAL_INST_NAME= ASM1 MAL_HOST= 10.18.18.12 MAL_PORT= 4837 [dmdba@dmdsc1 bin]$ [dmdba@dmdsc2 ~]$ vi /home/dmdba/dmdsc/data/DSC02/dmasvrmal.ini [dmdba@dmdsc2 ~]$ cat /home/dmdba/dmdsc/data/DSC02/dmasvrmal.ini [MAL_INST1] MAL_INST_NAME= ASM0 MAL_HOST= 10.18.18.11 MAL_PORT= 4836 [MAL_INST2] MAL_INST_NAME= ASM1 MAL_HOST= 10.18.18.12 MAL_PORT= 4837 [dmdba@dmdsc2 ~]$
2.5 配置文件 DMDCR.INI
准备 DMDCR.INI 文件,分别保存到192.168.17.11的/home/dmdba/dmdsc/data/DSC01下和192.168.17.12 的/home/dmdba/dmdsc/data/DSC02下
[dmdba@dmdsc1 DSC01]$ cat /home/dmdba/dmdsc/data/DSC01/dmdcr.ini DMDCR_PATH = /dev_DSC2/DCR DMDCR_MAL_PATH = /home/dmdba/dmdsc/data/DSC01/dmasvrmal.ini DMDCR_SEQNO = 0 DMDCR_ASM_RESTART_INTERVAL = 0 DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini DMDCR_DB_RESTART_INTERVAL = 0 DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini [dmdba@dmdsc1 DSC01]$ [dmdba@dmdsc2 DSC02]$ vi /home/dmdba/dmdsc/data/DSC02/dmdcr.ini [dmdba@dmdsc2 DSC02]$ cat /home/dmdba/dmdsc/data/DSC02/dmdcr.ini DMDCR_PATH = /dev_DSC2/DCR DMDCR_MAL_PATH = /home/dmdba/dmdsc/data/DSC02/dmasvrmal.ini DMDCR_SEQNO = 1 DMDCR_ASM_RESTART_INTERVAL = 0 DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini DMDCR_DB_RESTART_INTERVAL = 0 DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini [dmdba@dmdsc2 DSC02]$
注意节点2的参数DMDCR_SEQNO = 1
2.6 启动 DMCSS、DMASM 服务程序
主节点192.168.17.11启动 DMCSS:
[dmdba@dmdsc1 DSC01]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc1 bin]$ ./dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DMCSS V8
DMCSS IS READY
[2025-09-09 17:42:05:115] [CSS]: 设置EP CSS0[0]为控制节点
[2025-09-09 17:45:57:527] [ASM]: 设置EP ASM0[0]为控制节点
[2025-09-09 17:45:57:529] [ASM]: 设置命令[START NOTIFY], 目标站点 ASM0[0], 命令序号[2]
[2025-09-09 17:45:58:531] [ASM]: 设置命令[EP START], 目标站点 ASM0[0], 命令序号[3]
[2025-09-09 17:45:58:636] [ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[2025-09-09 17:45:58:751] [ASM]: 设置命令[EP START], 目标站点 ASM1[1], 命令序号[5]
[2025-09-09 17:45:58:878] [ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
[2025-09-09 17:45:58:983] [ASM]: 设置命令[EP OPEN], 目标站点 ASM0[0], 命令序号[8]
[2025-09-09 17:45:58:984] [ASM]: 设置命令[EP OPEN], 目标站点 ASM1[1], 命令序号[9]
[2025-09-09 17:45:59:105] [ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[2025-09-09 17:45:59:122] [ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
[2025-09-09 17:45:59:130] [ASM]: 设置命令[EP REAL OPEN], 目标站点 ASM0[0], 命令序号[11]
[2025-09-09 17:45:59:133] [ASM]: 设置命令[EP REAL OPEN], 目标站点 ASM1[1], 命令序号[12]
[2025-09-09 17:46:00:052] [ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[2025-09-09 17:46:00:156] [ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
另一节点192.168.17.12启动 DMCSS:
[dmdba@dmdsc2 DSC02]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc2 bin]$ ./dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
DMCSS V8
DMCSS IS READY
[2025-09-09 17:42:31:769] [CSS]: 设置EP CSS0[0]为控制节点
新开一个窗口,主节点192.168.17.11启动 DMASMSVR:
[dmdba@dmdsc1 ~]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc1 bin]$ ./dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
ASM SELF EPNO:0
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.
check css cmd: START NOTIFY, cmd_seq: 2, code: 0
check css cmd: EP START, cmd_seq: 3, code: 0
ASM Control Node EPNO:0
[WARNING]Decode asmdisk device fail, sig:1751483255, disk_id:65535, group_id:65535.
[WARNING]Decode asmdisk device fail, sig:1751483255, disk_id:65535, group_id:65535.
[WARNING]Decode asmdisk device fail, sig:1751483255, disk_id:65535, group_id:65535.
check css cmd: EP OPEN, cmd_seq: 8, code: 0
check css cmd: EP REAL OPEN, cmd_seq: 11, code: 0
新开一个窗口,另一节点192.168.17.12启动 DMASMSVR:
[dmdba@dmdsc2 ~]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc2 bin]$ ./dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
ASM SELF EPNO:1
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.
check css cmd: EP START, cmd_seq: 5, code: 0
ASM Control Node EPNO:0
[WARNING]Decode asmdisk device fail, sig:1751483255, disk_id:65535, group_id:65535.
[WARNING]Decode asmdisk device fail, sig:1751483255, disk_id:65535, group_id:65535.
[WARNING]Decode asmdisk device fail, sig:1751483255, disk_id:65535, group_id:65535.
check css cmd: EP OPEN, cmd_seq: 9, code: 0
check css cmd: EP REAL OPEN, cmd_seq: 12, code: 0
2.7 创建 ASM 磁盘组
使用 DMASMTOOL 工具创建 ASM 磁盘组,在192.168.17.11上登录创建:
[dmdba@dmdsc1 ~]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc1 bin]$ ./dmasmtool dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
dmasmtool V8
#创建DATA磁盘组
ASM>CREATE DISKGROUP DMDATA asmdisk '/dev_DSC2/DMDATA'
Used time: 155.732(ms).
#创建LOG磁盘组
ASM>CREATE DISKGROUP DMLOG asmdisk '/dev_DSC2/DMLOG'
Used time: 164.819(ms).
#创建ARCH磁盘组
ASM>CREATE DISKGROUP DMARCH asmdisk '/dev_DSC2/DMARCH'
Used time: 147.136(ms).
ASM>
2.8 配置文件 DMINIT.INI
在192.168.17.11机器上准备 DMINIT.INI 配置文件,保存到/home/dmdba/dmdsc/data/DSC01 目录下。
[dmdba@dmdsc1 bin]$ vi /home/dmdba/dmdsc/data/DSC01/dminit.ini
[dmdba@dmdsc1 bin]$ cat /home/dmdba/dmdsc/data/DSC01/dminit.ini
DB_NAME= dsc2
SYSTEM_PATH= +DMDATA/data
SYSTEM= +DMDATA/data/dsc2/system.dbf
SYSTEM_SIZE= 128
ROLL= +DMDATA/data/dsc2/roll.dbf
ROLL_SIZE= 128
MAIN= +DMDATA/data/dsc2/main.dbf
MAIN_SIZE= 128
CTL_PATH= +DMDATA/data/dsc2/dm.ctl
LOG_SIZE= 2048
DCR_PATH= /dev_DSC2/DCR
DCR_SEQNO= 0
AUTO_OVERWRITE= 2
PAGE_SIZE = 32
EXTENT_SIZE = 32
SYSDBA_PWD=Sin0pharm
SYSAUDITOR_PWD=Sin0pharm
BLANK_PAD_MODE=1
CASE_SENSITIVE=0
CHARSET=0
[DSC01]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC01/DSC01_conf
PORT_NUM = 5236
MAL_HOST= 10.18.18.11
MAL_PORT= 6536
LOG_PATH= +DMLOG/log/DSC01_log1.log
LOG_PATH= +DMLOG/log/DSC01_log2.log
[DSC02]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC02/DSC02_conf
PORT_NUM = 5237
MAL_HOST= 10.18.18.12
MAL_PORT= 6537
LOG_PATH= +DMLOG/log/DSC02_log1.log
LOG_PATH= +DMLOG/log/DSC02_log2.log
[dmdba@dmdsc1 bin]$
2.9 初始化实例
选择一个节点,启动 DMINIT 初始化数据库,这里以192.168.17.11为例。DMINIT 执行完成后,会在 config_path 目录(/home/dmdba/dmdsc/data/DSC01/DSC01_conf 和/home/dmdba/dmdsc/data/DSC02/DSC02_conf)下生成配置文件 DM.INI 和 DMMAL.INI。
[dmdba@dmdsc1 bin]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc1 bin]$ ./dminit control=/home/dmdba/dmdsc/data/DSC01/dminit.ini
initdb V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2026-08-01
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: +DMLOG/log/DSC01_log1.log
log file path: +DMLOG/log/DSC01_log2.log
log file path: +DMLOG/log/DSC02_log1.log
log file path: +DMLOG/log/DSC02_log2.log
write to dir [+DMDATA/data/dsc2].
create dm database success. 2025-09-09 18:03:04
[dmdba@dmdsc1 bin]$
#将节点1/home/dmdba/dmdsc/data/DSC02/DSC02_conf的所有配置文件scp到节点2上。
[dmdba@dmdsc1 DSC02]$ cd /home/dmdba/dmdsc/data/DSC02
[dmdba@dmdsc1 DSC02]$ scp -r DSC02_conf 192.168.17.12:/home/dmdba/dmdsc/data/DSC02
The authenticity of host '192.168.17.12 (192.168.17.12)' can't be established.
ECDSA key fingerprint is SHA256:vO4eWsWx7MIPczIy0bXQq23PcfgYd45a5kBiBC9ImmE.
ECDSA key fingerprint is MD5:bc:be:33:bc:9b:fd:6b:ae:90:c8:39:09:18:fa:d4:c3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.17.12' (ECDSA) to the list of known hosts.
dmdba@192.168.17.12's password:
dmmal.ini 100% 204 294.5KB/s 00:00
dm.ini 100% 83KB 65.6MB/s 00:00
sqllog.ini 100% 714 1.6MB/s 00:00
[dmdba@dmdsc1 DSC02]$
2.10 启动数据库服务器
分别启动2个节点的服务器。
192.168.17.11节点服务器启动:
[dmdba@dmdsc1 bin]$ ./dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 9448
nsql_vm_t = 336
prjt2_vm_t = 176
ltid_vm_t = 216
nins2_vm_t = 1144
nset2_vm_t = 272
ndlck_vm_t = 192
ndel2_vm_t = 760
slct2_vm_t = 352
nli2_vm_t = 200
aagr2_vm_t = 312
pscn_vm_t = 400
dist_vm_t = 1000
DM Database Server 64 V8 03134284404-20250801-286012-20164 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-08-01
hlck_sys_init, init g_drm_dest:[0, 1]
lbs_sys_init, the length of g_master_map is 2333, fill it use ok_ep_arr:[0, 1], n_ok_ep:2!
check CSS cmd: START NOTIFY, cmd_seq: 2, code: 0
Control Node change from 255 to 254
check CSS cmd: DCR_LOAD, cmd_seq: 3, code: 0
check CSS cmd: EP START, cmd_seq: 6, code: 0
Control Node change from 254 to 0
file lsn: 0
check CSS cmd: EP START2, cmd_seq: 11, code: 0
ndct db load finished, code:100
ckpt2_exec_immediately begin.
checkpoint: buffer pages flushing..., upd_cnt:2
checkpoint end, 2 pages flushed, used_space[4096], free_space[4294955008].
checkpoint end, 0 pages flushed, used_space[4096], free_space[4294955008].
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[2002]
next_trxid = 4006.
pseg recv finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:19, write:20]
uthr_pipe_create, create pipe[read:21, write:22]
uthr_pipe_create, create pipe[read:23, write:24]
uthr_pipe_create, create pipe[read:25, write:26]
aud sys init success.
aud rt sys init success.
trx: 4006 purged 1 pages
trx: 4044 purged 1 pages
trx: 4046 purged 1 pages
trx: 4048 purged 1 pages
trx: 4050 purged 1 pages
trx: 4052 purged 1 pages
trx: 4054 purged 1 pages
trx: 4074 purged 1 pages
trx: 4320 purged 1 pages
trx: 4348 purged 1 pages
trx: 4350 purged 1 pages
trx: 4352 purged 1 pages
trx: 4354 purged 1 pages
trx: 4356 purged 1 pages
trx: 4360 purged 1 pages
trx: 4362 purged 1 pages
trx: 4366 purged 1 pages
trx: 4370 purged 1 pages
trx: 4384 purged 1 pages
trx: 4396 purged 1 pages
trx: 4416 purged 1 pages
trx: 4442 purged 1 pages
trx: 4444 purged 1 pages
trx: 4446 purged 1 pages
trx: 4448 purged 1 pages
trx: 4472 purged 1 pages
trx: 4476 purged 1 pages
trx: 4478 purged 1 pages
trx: 4480 purged 1 pages
trx: 4586 purged 1 pages
trx: 4588 purged 1 pages
trx: 4610 purged 1 pages
trx: 4648 purged 1 pages
trx: 4658 purged 1 pages
trx: 4668 purged 1 pages
trx: 4688 purged 1 pages
trx: 4700 purged 1 pages
trx: 4702 purged 1 pages
trx: 4720 purged 1 pages
trx: 4728 purged 9 pages
trx: 4782 purged 1 pages
trx: 4784 purged 1 pages
trx: 4786 purged 1 pages
trx: 4788 purged 1 pages
trx: 4800 purged 1 pages
trx: 4804 purged 1 pages
trx: 4808 purged 1 pages
trx: 4814 purged 1 pages
trx: 4820 purged 1 pages
trx: 4830 purged 1 pages
trx: 4834 purged 1 pages
trx: 4840 purged 1 pages
trx: 4844 purged 1 pages
trx: 4856 purged 1 pages
trx: 4858 purged 1 pages
trx: 5156 purged 1 pages
trx: 5226 purged 12 pages
trx: 5230 purged 1 pages
trx: 5246 purged 1 pages
trx: 5256 purged 1 pages
trx: 5264 purged 1 pages
trx: 5314 purged 1 pages
trx: 5322 purged 1 pages
trx: 5326 purged 1 pages
trx: 5330 purged 1 pages
trx: 5334 purged 1 pages
trx: 5338 purged 1 pages
trx: 5342 purged 1 pages
trx: 5346 purged 1 pages
trx: 5350 purged 1 pages
trx: 5354 purged 1 pages
trx: 5358 purged 1 pages
trx: 5362 purged 1 pages
trx: 5366 purged 1 pages
trx: 5370 purged 1 pages
trx: 5374 purged 1 pages
trx: 5378 purged 1 pages
trx: 5382 purged 1 pages
trx: 5386 purged 1 pages
trx: 5390 purged 1 pages
trx: 5394 purged 1 pages
trx: 5398 purged 1 pages
trx: 5402 purged 1 pages
trx: 5406 purged 1 pages
trx: 5410 purged 1 pages
trx: 5414 purged 1 pages
trx: 5418 purged 1 pages
trx: 5422 purged 1 pages
trx: 5426 purged 1 pages
trx: 5430 purged 1 pages
trx: 5434 purged 1 pages
trx: 5438 purged 1 pages
trx: 5442 purged 1 pages
trx: 5446 purged 1 pages
trx: 5450 purged 1 pages
trx: 5454 purged 1 pages
trx: 5458 purged 1 pages
trx: 5462 purged 1 pages
trx: 5470 purged 3 pages
trx: 5474 purged 1 pages
trx: 5492 purged 1 pages
trx: 5496 purged 1 pages
checkpoint for flush ts[65535] buffer...
checkpoint for flush ts[65535] buffer end
systables desc init success.
ndct_db_load_info finished, code:100.
nsvr_process_before_open begin.
nsvr_process_before_open success.
check CSS cmd: EP OPEN, cmd_seq: 16, code: 0
next_trxid in mem:[8016]
next_trxid = 10020.
[!!!DSC INFO!!!] DSC crash process over!
check CSS cmd: EP REAL OPEN, cmd_seq: 19, code: 0
SYSTEM IS READY.
192.168.17.12节点服务器启动:
[dmdba@dmdsc2 DSC02_conf]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc2 bin]$ ./dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 9448
nsql_vm_t = 336
prjt2_vm_t = 176
ltid_vm_t = 216
nins2_vm_t = 1144
nset2_vm_t = 272
ndlck_vm_t = 192
ndel2_vm_t = 760
slct2_vm_t = 352
nli2_vm_t = 200
aagr2_vm_t = 312
pscn_vm_t = 400
dist_vm_t = 1000
DM Database Server 64 V8 03134284404-20250801-286012-20164 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-08-01
hpc_ini_info_pre_check end, code:0
hlck_sys_init, init g_drm_dest:[0, 1]
lbs_sys_init, the length of g_master_map is 2333, fill it use ok_ep_arr:[0, 1], n_ok_ep:2!
check CSS cmd: DCR_LOAD, cmd_seq: 4, code: 0
check CSS cmd: EP START, cmd_seq: 8, code: 0
Control Node change from 255 to 0
mal_tsk_process_g_crash_lsn_bro, ep_seqno(0), crash_lsn(0)
mal_tsk_process_g_crash_lsn_bro, ep_seqno(1), crash_lsn(0)
check CSS cmd: EP START2, cmd_seq: 13, code: 0
Control node start status: OPEN
file lsn: 0
ndct db load finished, code:100
ckpt2_exec_immediately begin.
checkpoint end, 0 pages flushed, used_space[4096], free_space[4294955008].
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[8013]
next_trxid = 10017.
pseg recv finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:19, write:20]
uthr_pipe_create, create pipe[read:21, write:22]
uthr_pipe_create, create pipe[read:23, write:24]
uthr_pipe_create, create pipe[read:25, write:26]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:100.
nsvr_process_before_open begin.
nsvr_process_before_open success.
check CSS cmd: EP OPEN, cmd_seq: 17, code: 0
next_trxid in mem:[10017]
next_trxid = 12021.
check CSS cmd: EP REAL OPEN, cmd_seq: 20, code: 0
SYSTEM IS READY.
2.11 注册CSS、ASM、DSC后台服务
将之前通过前台已启动的进程,分别按如下顺序使用ctrl+c停各个节点(DSC实例进程->ASM进程->CSS进程)。
#停DSC实例进程
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
^CServer is stopping...
Only stop current instance...
listener closed and all sessions disconnected
adjust undo_retention & wakeup purge thread...full check point starting...
generate force checkpoint, rlog free space[4294959104], used space[0]
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
full check point end.
shutdown audit subsystem...OK
shutdown schedule subsystem...OK
shutdown timer successfully.
pre-shutdown MAL subsystem...OK
shutdown worker threads subsystem...OK
shutdown logic log subsystem...OK
shutdown sequence cache subsystem...OK
wait for mtsk link worker to exit..OK
shutdown mpp session subsystem...OK
wait for rapply is all over... OK
rapply worker threads exit successfully.
pre ending task & worker threads...OK
shutdown dblink subsystem...OK
shutdown local parallel threads pool successfully.
shutdown pthd_pools...OK
shutdown session subsystem...shutdown aux session subsystem...OK
shutdown rollback segments purging subsystem...OK
Distribute GBS resource dynamically...
[!!! GBS DRM BEGIN... !!!]
[!!! GBS DRM time used: 2895(ms) !!!]
[!!! GBS DRM END, code:0 !!!]
OK
Distribute GLS resource dynamically...
[!!! GLS DRM BEGIN... !!!]
[!!! GLS DRM time used: 4(ms) !!!]
[!!! GLS DRM END, dest_ep:0, code:0 !!!]
OK
ckpt2_exec_immediately begin.
checkpoint end, 0 pages flushed, used_space[4096], free_space[4294955008].
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
checkpoint end, 0 pages flushed, used_space[0], free_space[4294959104].
Adjust ok ep array...OK
shutdown transaction subsystem...OK
shutdown locking subsystem...OK
shutdown dbms_lock subsystem...OK
ending tsk and worker threads...OK
shutdown archive subsystem...OK
shutdown redo log subsystem...OK
shutdown MAL subsystem...OK
shutdown message compress subsystem successfully.
shutdown task subsystem...OK
shutdown trace subsystem...OK
shutdown svr_log subsystem...OK
shutdown plan cache subsystem...OK
shutdown database dictionary subsystem...OK
shutdown file subsystem...OK
shutdown mac cache subsystem...OK
shutdown dynamic login cache subsystem...OK
shutdown ifun/bifun/sfun/afun cache subsystem...OK
shutdown crypt subsystem...OK
shutdown pipe subsystem...OK
shutdown compress component...OK
shutdown slave redo subsystem...OK
shutdown kernel buffer subsystem...OK
shutdown SQL capture subsystem...OK
shutdown control file system...OK
shutdown dtype subsystem...OK
shutdown huge buffer and memory pools...OK
close lsnr socket
DM Database Server shutdown successfully.
[dmdba@dmdsc2 bin]$
^CServer is stopping...
Stop instance is processing by other ep!
[!!! GBS DRM BEGIN... !!!]
[!!! GBS DRM END !!!]
[!!! GLS DRM BEGIN... !!!]
gls_item_process RESID_CMD_DRM_TSK finished, set drm_dest_ep to 0xFF
[!!! GLS DRM END !!!]
[!!!DSC INFO!!!] suspend worker thread begin...
[!!!DSC INFO!!!] suspend worker thread end.
hpc_process_ok_ep_arr_adjust end, code:0
checkpoint requested by INI_INTERVAL, rlog free space[4294946816], used space[12288]
checkpoint generate by ckpt_interval
checkpoint begin, used_space[12288], free_space[4294946816]...
checkpoint end, 0 pages flushed, used_space[8192], free_space[4294950912].
^CServer is stopping...
listener closed and all sessions disconnected
adjust undo_retention & wakeup purge thread...full check point starting...
generate force checkpoint, rlog free space[4294950912], used space[8192]
checkpoint begin, used_space[8192], free_space[4294950912]...
full check point end.
shutdown audit subsystem...OK
shutdown schedule subsystem...OK
shutdown timer successfully.
pre-shutdown MAL subsystem...OK
shutdown worker threads subsystem...OK
shutdown logic log subsystem...OK
shutdown sequence cache subsystem...OK
wait for mtsk link worker to exit..OK
shutdown mpp session subsystem...OK
wait for rapply is all over... OK
rapply worker threads exit successfully.
pre ending task & worker threads...OK
shutdown dblink subsystem...OK
shutdown local parallel threads pool successfully.
shutdown pthd_pools...OK
shutdown session subsystem...shutdown aux session subsystem...OK
shutdown rollback segments purging subsystem...OK
shutdown transaction subsystem...OK
shutdown locking subsystem...OK
shutdown dbms_lock subsystem...OK
ending tsk and worker threads...OK
ckpt2_exec_immediately begin.
checkpoint begin, used_space[0], free_space[4294959104]...
checkpoint end, 0 pages flushed, used_space[4096], free_space[4294955008].
checkpoint begin, used_space[4096], free_space[4294955008]...
checkpoint begin, used_space[0], free_space[4294959104]...
shutdown archive subsystem...OK
shutdown redo log subsystem...OK
shutdown MAL subsystem...OK
shutdown message compress subsystem successfully.
shutdown task subsystem...OK
shutdown trace subsystem...OK
shutdown svr_log subsystem...OK
shutdown plan cache subsystem...OK
shutdown database dictionary subsystem...OK
shutdown file subsystem...OK
shutdown mac cache subsystem...OK
shutdown dynamic login cache subsystem...OK
shutdown ifun/bifun/sfun/afun cache subsystem...OK
shutdown crypt subsystem...OK
shutdown pipe subsystem...OK
shutdown compress component...OK
shutdown slave redo subsystem...OK
shutdown kernel buffer subsystem...OK
shutdown SQL capture subsystem...OK
shutdown control file system...OK
shutdown dtype subsystem...OK
shutdown huge buffer and memory pools...OK
close lsnr socket
DM Database Server shutdown successfully.
[dmdba@dmdsc1 bin]$
#停ASM进程
[TRACE]asm_disk_add: /dev_DSC2/DMLOG
[TRACE]Pre-check disk_path:/dev_DSC2/DMARCH is_ok:1
[TRACE]asm_disk_add: /dev_DSC2/DMARCH
[TRACE]atsk_process_connect success, client_is_local=1
[TRACE]asvr2_sess_free sess:(0xd4000920), tsk:(0x267ff70).
[TRACE]atsk_process_connect success, client_is_local=1
[TRACE]asvr2_sess_free sess:(0xd4000920), tsk:(0x364e9b0).
^C[dmdba@dmdsc2 bin]$
[dmdba@dmdsc2 bin]$
[TRACE]The ASM file 0x80000015 extend from (0, 2348812576), offset:0, extend size:6144 bytes, org_size:0 bytes, cur_size:6144 bytes.
[TRACE]The ASM file 0x80000015 truncate from (0, 2348812576), org_size:6144, cur_size:6144.
[TRACE]The ASM file:[+DMDATA/data/dsc2/dm_20250909181111_543590.ctl], id:[0x80000014] delete from (0, 2348812576).
[TRACE]DG 0 free 1 extents from 0x80000014 (0,0,160)->(0,0,160)
[TRACE]DG 0 alloc 16 extents for 0x80000010 (0, 0, 162)->(0, 0, 177)
[TRACE]The ASM file 0x80000010 extend from (1, 3556772128), offset:10485760, extend size:67108864 bytes, org_size:10485760 bytes, cur_size:77594624 bytes.
[TRACE]atsk_process_sess_free org_site:(1), org_sess:(0xd4000920).
[TRACE]atsk_process_sess_free org_site:(0), org_sess:(0x8c000920).
[TRACE]asvr2_sess_free sess:(0x8c000920), tsk:(0x24adc70).
check css cmd: EP_CRASH, cmd_seq: 16, code: 0
asvr2_process_crash_recv...
asvr2_process_crash_recv end
check css cmd: CMD CLEAR, cmd_seq: 18, code: 0
^Ccheck css guid_halt cmd, cmd: SYS HALT, cmd_seq: 22
[dmdba@dmdsc1 bin]$
#CSS进程
shutdown ep[1] abort!
[2025-09-09 18:19:15:635] DB [DSC02] exit alone, CSS may probably exclude the instance from the cluster, but there is no need to launch crash recovery process.
[2025-09-09 18:20:52:809] ASM [ASM1] has broken, CSS may probably exclude the instance from the cluster and launch crash recovery process.
[CSS]: detect ASM [ASM1] broken, need to force halt the same-site DB instance [DSC02].
shutdown ep[1] abort!
[2025-09-09 18:20:52:847] Kill pid:6851 by CSS.
[2025-09-09 18:21:21:859] ASM [ASM0] has broken, CSS may probably exclude the instance from the cluster and launch crash recovery process.
[CSS]: detect ASM [ASM0] broken, need to force halt the same-site DB instance [DSC01].
shutdown ep[0] abort!
^C[dmdba@dmdsc2 bin]$
[CSS]: detect ASM [ASM0] broken, need to force halt the same-site DB instance [DSC01].
shutdown ep[0] abort!
[2025-09-09 18:21:21:518] [ASM]: 监测到所有ep关闭
detected all EP error in group[GRP_ASM], type: ASM, sta: [OPEN, STARTUP], css_halt_all_inst
detected all EP error in group[GRP_ASM], type: ASM, sta: [OPEN, STARTUP], css_halt_all_inst
shutdown ep[0] abort!
[2025-09-09 18:21:21:519] [ASM]: 设置命令[SYS HALT], 目标站点 ASM0[0], 命令序号[22]
[2025-09-09 18:21:21:519] [ASM]: 设置EP [255]为控制节点
[2025-09-09 18:21:21:520] [ASM]: 所有EP退出完成
[2025-09-09 18:21:21:616] [DB]: 设置命令[SYS HALT], 目标站点 DSC01[0], 命令序号[28]
[2025-09-09 18:21:21:617] Kill pid:7159 by CSS.
[2025-09-09 18:21:22:523] [ASM]: 设置命令[SYS HALT], 目标站点 ASM1[1], 命令序号[24]
[2025-09-09 18:22:15:669] CSS [CSS1] has broken, CSS may probably exclude the instance from the cluster and launch crash recovery process.
[CSS]: detect [CSS1] broken, need to force halt the same-site ASM instance [ASM1].
shutdown ep[1] abort!
[CSS]: detect CSS [CSS1] broken, need to force halt the same-site DB instance [DSC02].
shutdown ep[1] abort!
[2025-09-09 18:22:15:702] [CSS]: 设置命令[SYS HALT], 目标站点 CSS1[1], 命令序号[4]
[2025-09-09 18:23:07:759] [!!!DSC INFO!!!][CSS]: detected all EP error in group[CSS1], the entire group[CSS1] may be faulty
^C[dmdba@dmdsc1 bin]$
[dmdba@dmdsc1 bin]$
192.168.17.11节点服务器注册CSS,ASM,DSC服务器。root用户执行
[root@dmdsc1 ~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdsc/data/DSC01/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@dmdsc1 ~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdsc/data/DSC01/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@dmdsc1 ~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini -dcr_ini /home/dmdba/dmdsc/data/DSC01/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDSC.service to /usr/lib/systemd/system/DmServiceDSC.service.
创建服务(DmServiceDSC)完成
[root@dmdsc1 ~]#
192.168.17.12节点服务器注册CSS,ASM,DSC服务器。root用户执行
[root@dmdsc2 ~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdsc/data/DSC02/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@dmdsc2 ~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdsc/data/DSC02/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@dmdsc2 ~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini -dcr_ini /home/dmdba/dmdsc/data/DSC02/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDSC.service to /usr/lib/systemd/system/DmServiceDSC.service.
创建服务(DmServiceDSC)完成
[root@dmdsc2 ~]#
2.12 配置 DMCSSM 监视器
现在我们搭建监视器,配置 DMCSSM.INI 文件。
DMCSSM 在任何机器上均可以启动,只要该台机器和 DMDSC 的真实机器网络是相通的,就可以监控 DMDSC 集群信息。
这里我们选择在192.168.17.11机器上搭建监视器。/home/dmdba/dmdsc/data 目录中 DMCSSM.INI 详细内容如下:
[dmdba@dmdsc1 ~]$ vi /home/dmdba/dmdsc/data/dmcssm.ini
[dmdba@dmdsc1 ~]$ cat /home/dmdba/dmdsc/data/dmcssm.ini
#和DMDCR_CFG.INI中的DCR_OGUID保持一致
CSSM_OGUID = 1071107589
#配置所有CSS的连接信息,
#与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致
CSSM_CSS_IP = 10.18.18.11:9836
CSSM_CSS_IP = 10.18.18.12:9837
CSSM_LOG_PATH = /home/dmdba/dmdsc/data/cssm_log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[dmdba@dmdsc1 ~]$
创建 DMCSSM 的日志存放路径。
[dmdba@dmdsc1 ~]$ mkdir /home/dmdba/dmdsc/data/cssm_log [dmdba@dmdsc1 ~]$
注册 DMCSSM 服务,在root下执行
[root@dmdsc1 ~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /home/dmdba/dmdsc/data/dmcssm.ini -p Monitor
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSMonitorServiceMonitor.service to /usr/lib/systemd/system/DmCSSMonitorServiceMonitor.service.
创建服务(DmCSSMonitorServiceMonitor)完成
[root@dmdsc1 ~]#
三、启停服务
3.1 启动集群
启动顺序:1节点/2节点机器CSS→1节点/2节点机器ASM→1节点/2节点机器DMSERVER
[dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/DmCSSServiceCSS start Starting DmCSSServiceCSS: [ OK ] [dmdba@dmdsc2 ~]$ /home/dmdba/dmdsc/bin/DmCSSServiceCSS start Starting DmCSSServiceCSS: [ OK ] [dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/DmASMSvrServiceASM start Starting DmASMSvrServiceASM: [ OK ] [dmdba@dmdsc2 ~]$ /home/dmdba/dmdsc/bin/DmASMSvrServiceASM start Starting DmASMSvrServiceASM: [ OK ] [dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/DmServiceDSC start Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully. [ OK ] [dmdba@dmdsc1 ~]$ [dmdba@dmdsc2 ~]$ /home/dmdba/dmdsc/bin/DmServiceDSC start Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully. [ OK ] [dmdba@dmdsc2 ~]$
3.2 启动 DMCSSM 集群监视器
在192.168.17.11机器上前台启动DMCSSM集群监视器,并用show命令查看集群状态
[dmdba@dmdsc1 ~]$ cd /home/dmdba/dmdsc/bin
[dmdba@dmdsc1 bin]$ ./dmcssm ini_path=/home/dmdba/dmdsc/data/dmcssm.ini
[monitor] [2025-09-09 18:48:48:636] CSS MONITOR V8
[monitor] [2025-09-09 18:48:50:690] CSS MONITOR SYSTEM IS READY.
[monitor] [2025-09-09 18:48:50:691] Wait CSS Control Node choosed...
[monitor] [2025-09-09 18:48:51:798] Wait CSS Control Node choosed succeed.
show
monitor current time:2025-09-09 18:49:04, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================
DSC_MODE = FULL
[CSS0] auto check = TRUE, global info:
[ASM0] auto restart = FALSE
[DSC01] auto restart = FALSE
[CSS1] auto check = TRUE, global info:
[ASM1] auto restart = FALSE
[DSC02] auto restart = FALSE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-09-09 18:49:04 CSS0 0 9836 Control Node OPEN WORKING OK TRUE 3883316 8195 3884118
2025-09-09 18:49:04 CSS1 1 9837 Normal Node OPEN WORKING OK TRUE 3890956 7845 3891738
=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-09-09 18:49:04 ASM0 0 5836 Control Node OPEN WORKING OK TRUE 3903844 8303 3904602
2025-09-09 18:49:04 ASM1 1 5837 Normal Node OPEN WORKING OK TRUE 3905833 7946 3906581
=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ========================================
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-09-09 18:49:04 DSC01 0 5236 Control Node OPEN WORKING OK TRUE 6453758 8476 6454468
2025-09-09 18:49:04 DSC02 1 5237 Normal Node OPEN WORKING OK TRUE 6456821 8118 6457522
==================================================================================================================
3.3 停止集群
停止顺序:1节点/2节点机器DMSERVER→1节点/2节点机器ASM→1节点/2节点机器CSS
[dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/DmServiceDSC stop Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully. [ OK ] [dmdba@dmdsc1 ~]$ [dmdba@dmdsc2 ~]$ /home/dmdba/dmdsc/bin/DmServiceDSC stop Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully. [ OK ] [dmdba@dmdsc2 ~]$ [dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/DmASMSvrServiceASM stop Starting DmASMSvrServiceASM: [ OK ] [dmdba@dmdsc2 ~]$ /home/dmdba/dmdsc/bin/DmASMSvrServiceASM start Starting DmASMSvrServiceASM: [ OK ] [dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/DmCSSServiceCSS stop Starting DmCSSServiceCSS: [ OK ] [dmdba@dmdsc2 ~]$ /home/dmdba/dmdsc/bin/DmCSSServiceCSS stop Starting DmCSSServiceCSS: [ OK ]
3.4 DMDSC 归档配置方法
一般建议 DMDSC 集群中的节点,除了配置本地归档之外,再双向配置集群中所有其他节点的远程归档。查询 vdm_arch_ini、varch_status 等动态视图可以获取归档配置以及归档状态等相关信息。
3.4.1 配置 DMARCH.INI 文件
在192.168.17.11机器上修改dm.ini配置文件,准备 dmarch.ini 配置文件,保存到/home/dmdba/dmdsc/data/DSC01/DSC01_conf 目录下。
#dm.ini配置文件把ARCH_INI=0修改成ARCH_INI=1
[dmdba@dmdsc1 ~]$ vi /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini
[dmdba@dmdsc1 ~]$ grep "ARCH_INI" /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini
ARCH_INI = 1 #dmarch.ini
[dmdba@dmdsc1 ~]$
#新增dmarch.ini配置文件
[dmdba@dmdsc1 ~]$ vi /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dmarch.ini
[dmdba@dmdsc1 ~]$ cat /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST =+DMARCH/DSC01/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC02
ARCH_INCOMING_PATH =+DMARCH/DSC02/arch
[dmdba@dmdsc1 ~]$
在192.168.17.12机器上修改dm.ini配置文件,准备 dmarch.ini 配置文件,保存到/home/dmdba/dmdsc/data/DSC02/DSC02_conf 目录下。
#dm.ini配置文件把ARCH_INI=0修改成ARCH_INI=1
[dmdba@dmdsc2 bin]$ vi /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini
[dmdba@dmdsc2 bin]$ grep "ARCH_INI" /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini
ARCH_INI = 1 #dmarch.ini
[dmdba@dmdsc2 bin]$
#新增dmarch.ini配置文件
[dmdba@dmdsc2 bin]$ vi /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dmarch.ini
[dmdba@dmdsc2 bin]$ cat /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/DSC02/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC01
ARCH_INCOMING_PATH = +DMARCH/DSC01/arch
[dmdba@dmdsc2 bin]$
3.4.2 重启集群实例
2个节点同时重启DSC实例
[dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/DmServiceDSC restart Stopping DmServiceDSC: [ OK ] Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully. [ OK ] [dmdba@dmdsc1 ~]$ [dmdba@dmdsc2 bin]$ /home/dmdba/dmdsc/bin/DmServiceDSC restart Stopping DmServiceDSC: [ OK ] Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully. [ OK ] [dmdba@dmdsc2 bin]$
3.4.3 验证归档和集群
通过创建sy_test测试表并插入数据,验证2个节点数据是否同步。
#连接节点1,创建sy_test表验证集群是否一致性
[dmdba@dmdsc1 ~]$ /home/dmdba/dmdsc/bin/disql SYSDBA
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 12.099(ms)
disql V8
SQL> select * from v$dm_arch_ini;
行号 ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE ARCH_SPACE_LIMIT ARCH_HANG_FLAG ARCH_TIMER_NAME ARCH_IS_VALID ARCH_WAIT_APPLY ARCH_INCOMING_PATH ARCH_CURR_DEST ARCH_FLUSH_BUF_SIZE ARCH_RESERVE_TIME ARCH_LOCAL_SHARE ARCH_LOCAL_SHARE_CHECK ARCH_SEND_DELAY ARCH_DEST_IP ARCH_DEST_PORT ARCH_DEST_ID ARCH_ASM_MIRROR
---------- -------------- --------- ------------------ -------------- ---------------- -------------- --------------- ------------- --------------- ------------------ ------------------ ------------------- ----------------- ---------------- ---------------------- --------------- ------------ -------------- ------------ ---------------
ARCH_ASM_STRIPING ARCH_RECOVER_TIME ARCH_CENTER_ID ARCH_FAILOVER ARCH_SUBSCRIBE_MODE ARCH_THRESHOLD_PER_SECOND ARCH_STANDBY_APPLY ARCH_DISTRICT_ID ARCH_VOTE_PRIORITY ARCH_CENTER_COMMIT
----------------- ----------------- -------------- ------------- ------------------- ------------------------- ------------------ ---------------- ------------------ ------------------
1 ARCHIVE_LOCAL1 LOCAL +DMARCH/DSC01/arch 2048 0 1 NULL Y NULL NULL +DMARCH/DSC01/arch 2 0 0 0 0 NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
2 ARCH_REMOTE1 REMOTE DSC02 1024 0 NULL NULL Y NULL +DMARCH/DSC02/arch DSC02 2 0 0 0 0 NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
已用时间: 3.136(毫秒). 执行号:101.
SQL> select * from v$arch_status;
行号 ARCH_TYPE ARCH_DEST ARCH_STATUS ARCH_SRC
---------- --------- ------------------ ----------- --------
1 LOCAL +DMARCH/DSC01/arch VALID DSC01
2 REMOTE +DMARCH/DSC02/arch VALID DSC02
已用时间: 2.139(毫秒). 执行号:102.
SQL> create table sy_test (id int);
操作已执行
已用时间: 93.080(毫秒). 执行号:103.
SQL> declare
v_id int;
begin
-- 插入数据
for v_id in 1..100000 loop
insert into sy_test values(v_id);
commit;
end loop;
dbms_output.put_line('插入完成');
end;
/2 3 4 5 6 7 8 9 10 11
DMSQL 过程已成功完成
已用时间: 00:20:16.507. 执行号:104.
SQL> select count(1) from sy_test;
行号 count(1)
---------- --------------------
1 200000
已用时间: 1.294(毫秒). 执行号:105.
SQL>
#同时开启另一个窗口,在节点2上一样操作。同时插入sy_test表,验证2节点数据库sy_test表是否一致
[dmdba@dmdsc2 ~]$ /home/dmdba/dmdsc/bin/disql SYSDBA:5237
密码:
服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 10.433(ms)
disql V8
SQL> select * from v$dm_arch_ini;
行号 ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE ARCH_SPACE_LIMIT ARCH_HANG_FLAG ARCH_TIMER_NAME ARCH_IS_VALID ARCH_WAIT_APPLY ARCH_INCOMING_PATH ARCH_CURR_DEST ARCH_FLUSH_BUF_SIZE ARCH_RESERVE_TIME ARCH_LOCAL_SHARE ARCH_LOCAL_SHARE_CHECK ARCH_SEND_DELAY ARCH_DEST_IP ARCH_DEST_PORT ARCH_DEST_ID ARCH_ASM_MIRROR
---------- -------------- --------- ------------------ -------------- ---------------- -------------- --------------- ------------- --------------- ------------------ ------------------ ------------------- ----------------- ---------------- ---------------------- --------------- ------------ -------------- ------------ ---------------
ARCH_ASM_STRIPING ARCH_RECOVER_TIME ARCH_CENTER_ID ARCH_FAILOVER ARCH_SUBSCRIBE_MODE ARCH_THRESHOLD_PER_SECOND ARCH_STANDBY_APPLY ARCH_DISTRICT_ID ARCH_VOTE_PRIORITY ARCH_CENTER_COMMIT
----------------- ----------------- -------------- ------------- ------------------- ------------------------- ------------------ ---------------- ------------------ ------------------
1 ARCHIVE_LOCAL1 LOCAL +DMARCH/DSC02/arch 2048 0 1 NULL Y NULL NULL +DMARCH/DSC02/arch 2 0 0 0 0 NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
2 ARCH_REMOTE1 REMOTE DSC01 1024 0 NULL NULL Y NULL +DMARCH/DSC01/arch DSC01 2 0 0 0 0 NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
已用时间: 18.661(毫秒). 执行号:501.
SQL> select * from v$arch_status;
行号 ARCH_TYPE ARCH_DEST ARCH_STATUS ARCH_SRC
---------- --------- ------------------ ----------- --------
1 LOCAL +DMARCH/DSC02/arch VALID DSC02
2 REMOTE +DMARCH/DSC01/arch VALID DSC01
已用时间: 1.660(毫秒). 执行号:502.
SQL> declare
v_id int;
begin
-- 插入数据
for v_id in 1..100000 loop
insert into sy_test values(v_id);
commit;
end loop;
dbms_output.put_line('插入完成');
end;
/2 3 4 5 6 7 8 9 10 11
DMSQL 过程已成功完成
已用时间: 00:20:15.956. 执行号:503.
SQL> select count(1) from sy_test;
行号 count(1)
---------- --------------------
1 200000
已用时间: 3.229(毫秒). 执行号:504.
SQL>
四、总结
本文详细记录了达梦数据共享集群(DMDSC)的安装与部署过程,涵盖了共享存储绑定、环境准备、软件安装、配置文件编写、服务启动与监控等关键步骤。
希望本文能为正在或计划部署 DMDSC 的读者提供有价值的参考。如有疑问,欢迎留言讨论。
参考资料:
达梦官方文档 - DMDSC 安装部署
如有错误或补充,欢迎指正!




