一、安装前操作系统检查

本次部署使用环境为Centos7.9
主库:192.168.12.125
备库/监视器:192.168.12.126

1、禁用透明大页及关闭numa检查
# 编辑 /etc/default/grub 文件,修改参数
vim /etc/default/grub

在这里插入图片描述

# 添加参数
numa=off transparent_hugepage=never

重新生成/etc/grub2.cfg 配置文件

grub2-mkconfig -o /etc/grub2.cfg

在这里插入图片描述

检查

dmesg | grep -i numa

cat /proc/cmdline
2、arena参数检查
方法一:将其写入到dmdba环境变量设置中
vi /etc/profile 或者 vi .bash_profile
加入以下内容:
export MALLOC_ARENA_MAX=1
方法二:将其写入到数据库脚本中
vim DmServicexxx
export MALLOC_ARENA_MAX=1
3、SELinux 检查
关闭SELinux需修改配置文件:/etc/selinux/config,修改SELINUX=disabled

##查看当前状态命令:
getenforce
4、调整system.conf参数
vim /etc/systemd/system.conf

##添加配置:
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240
5、操作系统资源限制检查
vim /etc/security/limits.conf


##添加配置:
dmdba   soft   data    unlimited
dmdba   hard   data    unlimited
dmdba   soft   fsize   unlimited
dmdba   hard   fsize   unlimited
dmdba   soft   nofile  65536
dmdba   hard   nofile  65536
dmdba   soft   nproc   65536
dmdba   hard   nproc   65536
dmdba   soft   nice    0
dmdba   hard   nice    0
dmdba   soft   as      unlimited
dmdba   hard   as      unlimited
dmdba   soft   core    unlimited
dmdba   hard   core    unlimited
dmdba   soft   memlock   unlimited
dmdba   hard   memlock   unlimited
dmdba   soft   stack   65536
dmdba   hard   stack   65536
6、操作系统内存参数和swappiness参数检查
# 查看参数:
cat /proc/sys/vm/overcommit_memory
cat/proc/sys/vm/swappiness
# 临时修改:
echo 0 > /proc/sys/vm/overcommit_memory
# 永久修改:
##用root 用户编辑vim /etc/sysctl.conf 
vm.overcommit_memory=0
vm.swappiness=10

# 然后执行 sysctl-p 使配置文件生效。

#vm.min_free_kbytes=默认值或按需设置#此参数为强制LinuxVM保持最小数量的可用内存,单位KB,通常建议将其设置为系统内存总量的1%
7、min_free_kbyte参数检查

对于内存较小(≤32G)的环境不建议设置,保持默认即可

#查看系统默认值
cat /proc/sys/vm/min_free_kbytes
#永久修改
echo vm.min_free_kbytes=1153434>>/etc/sysctl.conf&&sysctl-p
8、查看core文件生成路径及名称
##创建core文件生成路径
mkdir -p/home/dmdba/core
chown -R dmdba.dinstall/home/dmdba/core
##调整core文件路径
##vi/etc/sysctl.conf添加对应core文件参数
kernel.core_pattern=/home/dmdba/core/core-%e-%p-%s
执行sysctl-p进行生效
#手动产生core文件,并查看core文件路径是否在/home/dmdba/core下
注意:core频繁发生可能会撑爆磁盘,建议对core生成目录设置清理策略,保证目录可
用
9、增加 limits.conf 读取权限
# 通过root用户执行如下命令:
chmod a+x /etc/security
chmod a+r /etc/security/limits.conf
10、关闭 swap 分区
##临时关闭 swap 分区,重启后失效
swapoff-a

##永久关闭 swap 分区
vim /etc/fstab   注释掉swap分区那一行
11、麒麟 V10sp1 检查RemoveIPC参数
# 检查 RemoveIPC 参数设置 要求为no
systemctl show systemd-logind | grep -i removeipc
# 1、修改/etc/systemd/logind.conf 配置文件中的 RemoveIPC 参数,将#注释去掉,并修改yes为no
vim /etc/systemd/logind.conf
# 2、重启服务
systemctl daemon-reload;
systemctl restart systemd-logind
# 3、修改完成后,检查确认
systemctl show systemd-logind | grep -i removeipc

二、安装部署数据库

在各个节点安装单机版数据库

1、创建用户
groupadd dinstall	//创建用户组
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba //创建用户
passwd dmdba            //修改用户密码

2、添加环境变量
vi /home/dmdba/.bash_profile   //文件末尾添加如下内容:

export DM_HOME=/home/dmdba/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
3、安装数据库
1)、挂载镜像

切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下,执行如下命令挂载镜像:

# 本文上传路径为 /home/opt
 mkdir -p /home/opt

# dm8_20251208_x86_centos7_64.iso修改为实际的iso文件名
 mount -o loop /home/opt/dm8_20251208_x86_centos7_64.iso /mnt
2)、切换到dmdba用户进行数据库安装
su dmdba

cd /mnt

./DMInstall.bin -i
[dmdba@localhost mnt]$ ./DMInstall.bin -i
安装语言: 
[1]: 简体中文
[2]: English
请选择安装语言 [1]:
解压安装程序..........
硬件架构校验通过!
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [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 典型安装]:
所需空间: 1809M

请选择安装目录 [/home/dmdba/dmdbms]:
可用空间: 51G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:

安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1809M
可用空间: 51G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):
是否确认安装? (Y/y:是 N/n:否):y
2026-01-19 14:57:25 
[INFO] 安装 基础 模块...
2026-01-19 14:57:25 
[INFO] 安装达梦数据库...
2026-01-19 14:57:36 
[INFO] 安装 服务器 模块...
2026-01-19 14:57:38 
[INFO] 安装 客户端 模块...
2026-01-19 14:57:45 
[INFO] 安装 驱动 模块...
2026-01-19 14:57:50 
[INFO] 安装 手册 模块...
2026-01-19 14:57:51 
[INFO] 安装 服务 模块...
2026-01-19 14:57:52 
[INFO] 移动日志文件。
2026-01-19 14:57:52 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh

安装结束

[dmdba@localhost mnt]$ 

3)、以root用户执行
/home/dmdba/dmdbms/script/root/root_installer.sh
[root@localhost mnt]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/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服务
4、初始化实例
#进入/home/dmdba/dmdbms/bin目录下执行,初始化实例:
./dminit path=/dbdata/dmdata db_name=dmrw INSTANCE_NAME=dmrw1 EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048 PORT_NUM=5236 SYSDBA_PWD='Qaz@1$23' SYSAUDITOR_PWD='Qaz@1$23'

./dminit path=/dbdata/dmdata db_name=dmrw INSTANCE_NAME=dmrw2 EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048 PORT_NUM=5236 SYSDBA_PWD='Qaz@1$23' SYSAUDITOR_PWD='Qaz@1$23'
5、创建实例
root 用户下切换到 /home/dmdba/dmdbms/script/root/: 执行以下命令,执行脚本注册服务:
cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -dm_ini /dbdata/dmdata/dmrw/dm.ini -p DMSERVER
6、主备部署
1)启动主库,生成文件
# 主库前台启动实例,生成实例对应文件,启动后关闭即可。使用dmdba用户
./dmserver /dbdata/dmdata/dmrw/dm.ini

# 关闭前台启动数据库
exit
2)主库脱机备份

脱机备份前要关闭数据库实例,否则备份会出错,备份是为了确保主备数据库在自动同步前数据一致

./dmrman

BACKUP DATABASE '/dbdata/dmdata/dmrw/dm.ini' FULL BACKUPSET '/dbdata/dmbak/full_database';
[dmdba@localhost bin]$ ./dmrman 
dmrman V8
RMAN> BACKUP DATABASE '/dbdata/dmdata/dmrw/dm.ini' FULL BACKUPSET '/dbdata/dmbak/full_database';
BACKUP DATABASE '/dbdata/dmdata/dmrw/dm.ini' FULL BACKUPSET '/dbdata/dmbak/full_database';
file dm.key not found, use default license!
Processing backupset /dbdata/dmbak/full_database
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:04][Remaining:00:00:00]                                 
backup successfully!
time used: 00:00:04.800
RMAN> 
3)复制备份文件至备库并还原
scp -r full_database root@192.168.12.126:/dbdata/dmbak/

./dmrman

RESTORE DATABASE '/dbdata/dmdata/dmrw/dm.ini' FROM BACKUPSET '/dbdata/dmbak/full_database';

RECOVER DATABASE '/dbdata/dmdata/dmrw/dm.ini' FROM BACKUPSET '/dbdata/dmbak/full_database';

RECOVER DATABASE '/dbdata/dmdata/dmrw/dm.ini' UPDATE DB_MAGIC;
 
[dmdba@localhost bin]$ ./dmrman
dmrman V8
RMAN> RESTORE DATABASE '/dbdata/dmdata/dmrw/dm.ini' FROM BACKUPSET '/dbdata/dmbak/full_database';
RESTORE DATABASE '/dbdata/dmdata/dmrw/dm.ini' FROM BACKUPSET '/dbdata/dmbak/full_database';
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.788
RMAN> RECOVER DATABASE '/dbdata/dmdata/dmrw/dm.ini' FROM BACKUPSET '/dbdata/dmbak/full_database';
RECOVER DATABASE '/dbdata/dmdata/dmrw/dm.ini' FROM BACKUPSET '/dbdata/dmbak/full_database';
==============================Error Stack==============================
DM[603]:备份集[/dbdata/dmbak/full_database]备份过程中未产生日志
=======================================================================
recover successfully!
time used: 00:00:01.257
RMAN> RECOVER DATABASE '/dbdata/dmdata/dmrw/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/dbdata/dmdata/dmrw/dm.ini' UPDATE DB_MAGIC;
recover successfully!
time used: 00:00:01.241
RMAN> 
7、配置文件设置
# 为了便于管理,将所有配置文件都与dm.ini配置文件放在同一个目录下
#实例配置文件:dm.ini  #归档配置文件:dmarch.ini  #MAL系统配置文件:dmmal.ini  #守护进程配置文件:dmwatcher.ini  #监视器配置文件:dmmonitor.ini
1)实例配置文件 dm.ini

主备库进入/data/dmdata/dmrw目录下修改dm.ini文件

vim /dbdata/dmdata/dmrw/dm.ini

主库:

INSTANCE_NAME = DMRW1 #修改实例名
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

备库:

INSTANCE_NAME = DMRW2 #修改实例名
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间


2)归档配置文件dmarch.ini
vim /dbdata/dmdata/dmrw/dmarch.ini

主库:

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = DMRW2 #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dbdata/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 MB,0 表示无限制,范围 1024~4294967294 MB

备库:

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = DMRW1 #归档目标实例名(备库侧填写主库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dbdata/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
3)MAL系统配置文件 dmmal.ini,主库与备库内容一致
vim /dbdata/dmdata/dmrw/dmmal.ini
MAL_CHECK_INTERVAL = 5 # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 # 判定 MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMRW1 #与 dm.ini中的 INSTANCE_NAME一致
MAL_HOST = 192.168.12.125 # MAL系统监听 TCP 内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.12.125 #实例的对外服务 IP地址
MAL_INST_PORT = 5236 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DMRW2 #与 dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.12.126 # MAL系统监听 TCP内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.12.126 #实例的对外服务 IP地址
MAL_INST_PORT = 5236 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP端口
MAL_INST_DW_PORT = 33141
4)守护进程配置文件 dmwatcher.ini,主库与备库内容一致
vim /dbdata/dmdata/dmrw/dmwatcher.ini
[GRP_RW]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dbdata/dmdata/dmrw/dm.ini # dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动

5)监视器配置文件 dmmonitor.ini

集群任意节点(一般在备库),配置监视器配置文件 dmmonitor.ini,本文配置在备库服务器上。

vim /dbdata/dmdata/dmrw/dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dbdata/dmdata/dmmonitor_auto/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

[GRP_RW]
MON_INST_OGUID = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.12.125:52141
MON_DW_IP = 192.168.12.126:52141
8 、启动主备服务
1)启动数据库实例

主备库在/home/dmdba/dmdbms/bin目录下执行

su dmdba
cd /home/dmdba/dmdbms/bin
./dmserver /dbdata/dmdata/dmrw/dm.ini mount

主库

[dmdba@localhost bin]$ ./dmserver /dbdata/dmdata/dmrw/dm.ini mount
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 9456
nsql_vm_t = 336
prjt2_vm_t = 176
ltid_vm_t = 272
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 = 416
dist_vm_t = 1000
DM Database Server 64 V8 05134284458-20251201-304294-20178 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-12-01
file lsn: 47165
ndct db load finished, code:100
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
nsvr_startup end.
uthr_pipe_create, create pipe[read:14, write:15]
uthr_pipe_create, create pipe[read:16, write:17]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:100.
SYSTEM IS READY.

备库

[dmdba@localhost bin]$ ./dmserver /dbdata/dmdata/dmrw/dm.ini mount
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 9456
nsql_vm_t = 336
prjt2_vm_t = 176
ltid_vm_t = 272
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 = 416
dist_vm_t = 1000
DM Database Server 64 V8 05134284458-20251201-304294-20178 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-12-01
file lsn: 47165
ndct db load finished, code:100
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
nsvr_startup end.
uthr_pipe_create, create pipe[read:16, write:17]
uthr_pipe_create, create pipe[read:18, write:19]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:100.
SYSTEM IS READY.

另外开一个新的终端,使用 disql 工具连接数据库。

主库执行:

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/'"Qaz@1$23"'

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
#修改 oguid
SQL> sp_set_oguid(453331);
#修改为 primary 模式
SQL> alter database primary;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
[dmdba@localhost bin]$ ./disql SYSDBA/'"Qaz@1$23"'

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 11.368(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 20.734(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 16.068(毫秒). 执行号:2.
SQL>  alter database primary;
操作已执行
已用时间: 18.195(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 24.476(毫秒). 执行号:3.
SQL> 

备库执行:

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
#修改 oguid
sp_set_oguid(453331); 
#修改为 standby 模式
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
[dmdba@localhost bin]$ ./disql SYSDBA/'"Qaz@1$23"'

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 13.951(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 16.437(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 5.875(毫秒). 执行号:2.
SQL> alter database standby;
操作已执行
已用时间: 26.241(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 15.100(毫秒). 执行号:3.
SQL> 
2)启动守护进程

守护进程启动后,会将 Mount 的实例 Open。主备执行相同的操作。如有报错,请参考:

达梦数据库主从备份搭建_达梦数据库主从配置-CSDN博客

cd /home/dmdba/dmdbms/bin
./dmwatcher /dbdata/dmdata/dmrw/dmwatcher.ini
[dmdba@localhost bin]$ ./dmwatcher /dbdata/dmdata/dmrw/dmwatcher.ini
dmwatcher V8
DMWATCHER[4.0] IS READY
3)启动监视器

在192.168.12.126备库机器上启动监视器

新打开一个终端,执行:
./dmmonitor /dbdata/dmdata/dmrw/dmmonitor.ini
[root@localhost ~]# su dmdba
[dmdba@localhost root]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./dmmonitor /dbdata/dmdata/dmrw/dmmonitor.ini
[monitor]         2026-01-19 16:40:36: DMMONITOR[4.0] V8
[monitor]         2026-01-19 16:40:36: DMMONITOR[4.0] IS READY.

[monitor]         2026-01-19 16:40:36: 
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DMRW1), THE FIRST LINE IS SELF INFO.

DW_CONN_TIME         MON_CONFIRM    MID            MON_IP                 MON_VERSION                                                     
2026-01-19 16:40:35  TRUE           742502474      ::ffff:192.168.12.126  DMMONITOR[4.0] V8
                                              
#-----------------------------------------------------------------------------------------------#

[monitor]         2026-01-19 16:40:36: 收到守护进程(DMRW1)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2026-01-19 16:40:35  OPEN           OK        DMRW1            OPEN        PRIMARY   VALID    2        47201           47201           

[monitor]         2026-01-19 16:40:36: 收到守护进程(DMRW2)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2026-01-19 16:40:36  OPEN           OK        DMRW2            OPEN        STANDBY   VALID    2        47201           47201           

4)验证数据同步

主库:使用 disql 客户端登录,创建测试表,插入数据。

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/'"Qaz@1$23"'

create table test(id int, name varchar2(20));
insert into test values (1, 'one');
select * from test;
[dmdba@localhost bin]$ ./disql SYSDBA/'"Qaz@1$23"'

服务器[LOCALHOST:5236]:处于主库打开状态
登录使用时间 : 7.028(ms)
disql V8
SQL> create table test(id int, name varchar2(20));
操作已执行
已用时间: 519.427(毫秒). 执行号:701.
SQL> insert into test values (1, 'one');
影响行数 1

已用时间: 3.291(毫秒). 执行号:702.
SQL> 
SQL> select * from test;

行号       ID          NAME
---------- ----------- ----
1          1           one

已用时间: 4.747(毫秒). 执行号:703.
SQL> 

备库:查询数据

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/'"Qaz@1$23"'
select * from test;
9)服务注册

上述服务启动都是前台启动,关闭窗口服务就会退出,可以将启动命令注册为系统服务,便于操作。

使用 root 用户,到数据库安装目录的 script/root 下,执行。

cd /home/dmdba/dmdbms/script/root

#注册守护进程服务(主备库都执行)

 ./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /dbdata/dmdata/dmrw/dmwatcher.ini

#注册监视器服务(只需在监视器服务器上执行),执行以下命令:

./dm_service_installer.sh -t dmmonitor -p confirm -monitor_ini /dbdata/dmdata/dmrw/dmmonitor.ini
# 启动数据库实例,执行以下命令(主备执行):
systemctl start DmServicedmrw

# 启动守护进程,执行以下命令(主备执行):
systemctl start DmWatcherServicedmrw

# 启动监视器,执行以下命令(在监视器节点执行):
systemctl start DmMonitorServiceconfirm
9)重启集群

主备集群重启有顺序要求:

# 关闭监视器:
systemctl stop DmMonitorServiceconfirm
# 关闭主库守护进程:
systemctl stop DmWatcherServicedmrw
# 关闭备库守护进程:
systemctl stop DmWatcherServicedmrw
# 关闭主库实例:
systemctl stop DmServiceDMSERVER
# 关闭备库实例:
systemctl stop DmServiceDMSERVER

# 启动主库实例:
systemctl start DmServiceDMSERVER
# 启动备库实例:
systemctl start DmServiceDMSERVER
# 启动主库守护进程:
systemctl start DmWatcherServicedmrw
# 启动备库守护进程:
systemctl start DmWatcherServicedmrw
# 启动监视器:
systemctl start DmMonitorServiceconfirm

启动:主备库实例 → 主备库守护进程 → 监视器

关闭:监视器 → 主备库守护进程 → 主备库实例

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐