暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

达梦数据共享集群(DMDSC)安装部署实战

原创 孙莹 2025-09-09
406

达梦数据共享集群(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 拓扑结构

202301121151019RLHP2JSTGMTQDMZXN.png

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 安装部署

如有错误或补充,欢迎指正!

最后修改时间:2025-09-10 09:54:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论