注册
DM8数据库 DW集群部署记录
专栏/技术分享/ 文章详情 /

DM8数据库 DW集群部署记录

BigQ 2026/07/16 208 0 0
摘要

DM8数据库
DW集群部署记录

目录
一、环境描述 1
二、操作系统配置 1
2.1 创建用户组及用户 1
2.2 创建软件目录 2
2.3 检查防火墙 2
2.4 关闭selinux 4
2.5 调整limits.conf文件 4
2.6 调整system.conf 6
2.7调整sysctl.conf 6
2.8磁盘调度算法检查 7
2.9禁用透明大页 8
三、 数据库安装配置 8
3.1 数据库软件安装 8
3.2 初始化实例 15
3.3 开启归档 16
3.4 备份数据库 17
3.5 修改dm.ini 17
3.6 配置dmarch.ini 17
3.7 创建dmmal.ini 18
3.8 配置dmwatcher.ini 18
3.9 修改sqllog.ini 19
3.10 注册服务 19
3.11修改服务脚本 20
四、 复制实例和备份到备机 20
五、 备机配置修改 20
5.1 修改dm.ini文件 20
5.2 修改dmarch.ini 20
5.3 注册服务 21
5.4 数据恢复 21
5.5 修改服务脚本 22
六、 监视器配置 23
6.1 配置确认监视器文件 23
6.2 配置非确认监视器文件 23
6.3 注册监视器服务 24
七、 启动DW集群 24
7.1 启动并配置集群信息 24
7.2 启动守护进程 25
7.3 启动监视器 25
7.4 启动非确认监视器 25
八、 DW集群维护 27

一、环境描述
A服务器 B服务器 C服务器
角色 主库 备库 监视器
主机名 dmdb01 dmdb02 dmmon
业务IP 192.168.3.25 192.168.3.26 192.168.3.27
心跳IP 192.168.56.10 192.168.56.11 192.168.56.12
CPU架构 x86_64 x86_64 x86_64
二、操作系统配置
2.1 创建用户组及用户
A服务器:
[root@dmdb01 ~]# groupadd -g 2001 dinstall
[root@dmdb01 ~]# useradd -u 1001 -g dinstall dmdba
[root@dmdb01 ~]# passwd dmdba

B服务器:
[root@dmdb02 ~]# groupadd -g 2001 dinstall
[root@dmdb02 ~]# useradd -u 1001 -g dinstall dmdba
[root@dmdb02 ~]# passwd dmdba

C服务器:
[root@dmmon ~]# groupadd -g 2001 dinstall
[root@dmmon ~]# useradd -u 1001 -g dinstall dmdba
[root@dmmon ~]# passwd dmdba

2.2 创建软件目录
A服务器:
[root@dmdb01 ~]# mkdir -p /data/dmdata
[root@dmdb01 ~]# mkdir -p /dmarch
[root@dmdb01 ~]# mkdir -p /dmbak/dmlogcommit
[root@dmdb01 ~]# mkdir -p /dmbak/dmcore
[root@dmdb01 ~]# mkdir -p /dmbak
[root@dmdb01 ~]# chown -R dmdba:dinstall /data
[root@dmdb01 ~]# chown -R dmdba:dinstall /dmbak
[root@dmdb01 ~]# chown -R dmdba:dinstall /dmarch

B服务器:
[root@dmdb02 ~]# mkdir -p /data/dmdata
[root@dmdb02 ~]# mkdir -p /dmarch
[root@dmdb02 ~]# mkdir -p /dmbak/dmlogcommit
[root@dmdb02 ~]# mkdir -p /dmbak/dmcore
[root@dmdb02 ~]# mkdir -p /dmbak
[root@dmdb02 ~]# chown -R dmdba:dinstall /data
[root@dmdb02 ~]# chown -R dmdba:dinstall /dmbak
[root@dmdb02 ~]# chown -R dmdba:dinstall /dmarch

C服务器:
[root@dmmon ~]# mkdir -p /data/dmdata
[root@dmmon ~]# mkdir -p /dmarch
[root@dmmon ~]# mkdir -p /dmbak/dmlogcommit
[root@dmmon ~]# mkdir -p /dmbak/dmcore
[root@dmmon ~]# mkdir -p /dmbak
[root@dmmon ~]# chown -R dmdba:dinstall /data
[root@dmmon ~]# chown -R dmdba:dinstall /dmbak
[root@dmmon ~]# chown -R dmdba:dinstall /dmarch

2.3 检查防火墙
A服务器:
[root@dmdb01 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)

Jun 03 12:15:11 dmdb01 systemd[1]: Starting firewalld - dynamic firewall daemon…
Jun 03 12:15:12 dmdb01 systemd[1]: Started firewalld - dynamic firewall daemon.
Jun 03 12:16:04 dmdb01 systemd[1]: Stopping firewalld - dynamic firewall daemon…
Jun 03 12:16:09 dmdb01 systemd[1]: Stopped firewalld - dynamic firewall daemon.

B服务器:
[root@dmdb02 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)

Jun 03 12:15:33 dmdb02 systemd[1]: Starting firewalld - dynamic firewall daemon…
Jun 03 12:15:34 dmdb02 systemd[1]: Started firewalld - dynamic firewall daemon.
Jun 03 12:17:03 dmdb02 systemd[1]: Stopping firewalld - dynamic firewall daemon…
Jun 03 12:17:06 dmdb02 systemd[1]: Stopped firewalld - dynamic firewall daemon.

C服务器:
[root@dmmon ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)

Jun 03 12:15:48 dmmon systemd[1]: Starting firewalld - dynamic firewall daemon…
Jun 03 12:15:49 dmmon systemd[1]: Started firewalld - dynamic firewall daemon.
Jun 03 12:34:31 dmmon systemd[1]: Stopping firewalld - dynamic firewall daemon…
Jun 03 12:34:37 dmmon systemd[1]: Stopped firewalld - dynamic firewall daemon.

2.4 关闭selinux
A服务器:
[root@dmdb01 ~]# getenforce
Disabled

B服务器:
[root@dmdb02 ~]# getenforce
Disabled

C服务器:
[root@dmmon ~]# getenforce
Disabled

2.5 调整limits.conf文件
A服务器:
[root@dmdb01 ~]# cat /etc/security/limits.conf
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 core unlimited
dmdba hard core unlimited
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft memlock unlimited
dmdba hard memlock unlimited
dmdba soft nice 0
dmdba hard nice 0

B服务器:
[root@dmdb02 ~]# cat /etc/security/limits.conf
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 core unlimited
dmdba hard core unlimited
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft memlock unlimited
dmdba hard memlock unlimited
dmdba soft nice 0
dmdba hard nice 0

C服务器:
[root@dmmon ~]# cat /etc/security/limits.conf
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 core unlimited
dmdba hard core unlimited
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft memlock unlimited
dmdba hard memlock unlimited
dmdba soft nice 0
dmdba hard nice 0

2.6 调整system.conf
A服务器:
[root@dmdb01 ~]# cat /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240

B服务器:
[root@dmdb02 ~]# cat /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240

C服务器:
[root@dmmon ~]# cat /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240

2.7调整sysctl.conf
A服务器:
[root@dmdb01 ~]# cat /etc/sysctl.conf
vm.swappiness=10
vm.overcommit_memory=0
kernel.core_pattern =/dmbak/dmcore/core-%e-%p-%s
vm.min_free_kbytes = 1153434

[root@dmdb01 ~]# sysctl -p
[root@dmdb01 ~]# kill -s SIGSEGV $$

B服务器:
[root@dmdb02 ~]# cat /etc/sysctl.conf
vm.swappiness=10
vm.overcommit_memory=0
kernel.core_pattern =/dmbak/dmcore/core-%e-%p-%s
vm.min_free_kbytes = 1153434

[root@dmdb02 ~]# sysctl -p
[root@dmdb02 ~]# kill -s SIGSEGV $$

C服务器:
[root@dmmon ~]# cat /etc/sysctl.conf
vm.swappiness=10
vm.overcommit_memory=0
kernel.core_pattern =/dmbak/dmcore/core-%e-%p-%s
vm.min_free_kbytes = 1153434

[root@dmmon ~]# sysctl -p
[root@dmmon ~]# kill -s SIGSEGV $$
2.8磁盘调度算法检查
A服务器:
[root@dmdb01 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

B服务器:
[root@dmdb02 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

C服务器:
[root@dmmon ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

2.9禁用透明大页
A服务器:
[root@dmdb01 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

B服务器:
[root@dmdb02 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

C服务器:
[root@dmmon ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
三、数据库安装配置
3.1 数据库软件安装
A服务器:
[dmdba@dmdb01 dm]$ ./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 典型安装]:1
所需空间: 1919M

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

安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1919M
可用空间: 92G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2026-06-03 15:02:07
[INFO] 安装达梦数据库…
2026-06-03 15:02:07
[INFO] 安装 基础 模块…
2026-06-03 15:05:00
[INFO] 安装 服务器 模块…
2026-06-03 15:05:13
[INFO] 安装 客户端 模块…
2026-06-03 15:06:49
[INFO] 安装 驱动 模块…
2026-06-03 15:08:37
[INFO] 安装 手册 模块…
2026-06-03 15:09:03
[INFO] 安装 服务 模块…
2026-06-03 15:09:08
[INFO] 移动日志文件。
2026-06-03 15:09:11
[INFO] 安装达梦数据库完成。

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

安装结束

[root@dmdb01 soft]# /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服务

B服务器:
[dmdba@dmdb02 dm]$ ./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 典型安装]:1
所需空间: 1919M

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

安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1919M
可用空间: 92G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2026-06-03 15:13:54
[INFO] 安装达梦数据库…
2026-06-03 15:13:54
[INFO] 安装 基础 模块…
2026-06-03 15:16:04
[INFO] 安装 服务器 模块…
2026-06-03 15:16:17
[INFO] 安装 客户端 模块…
2026-06-03 15:17:31
[INFO] 安装 驱动 模块…
2026-06-03 15:18:56
[INFO] 安装 手册 模块…
2026-06-03 15:19:17
[INFO] 安装 服务 模块…
2026-06-03 15:19:20
[INFO] 移动日志文件。
2026-06-03 15:19:22
[INFO] 安装达梦数据库完成。

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

安装结束

[root@dmdb02 soft]# /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服务

C服务器:
[dmdba@dmmon dm]$ ./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 典型安装]:
所需空间: 1919M

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

安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1919M
可用空间: 92G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2026-06-03 15:32:40
[INFO] 安装达梦数据库…
2026-06-03 15:32:40
[INFO] 安装 基础 模块…
2026-06-03 15:32:57
[INFO] 安装 服务器 模块…
2026-06-03 15:33:01
[INFO] 安装 客户端 模块…
2026-06-03 15:33:11
[INFO] 安装 驱动 模块…
2026-06-03 15:33:21
[INFO] 安装 手册 模块…
2026-06-03 15:33:22
[INFO] 安装 服务 模块…
2026-06-03 15:33:23
[INFO] 移动日志文件。
2026-06-03 15:33:24
[INFO] 安装达梦数据库完成。

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

安装结束

[root@dmmon dm]# /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服务

3.2 初始化实例
A服务器:
##初始化实例
[dmdba@dmdb01 ~]$ /home/dmdba/dmdbms/bin/dminit PATH=/data/dmdata INSTANCE_NAME=DW01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=4096 SYSDBA_PWD=Xxxxx SYSAUDITOR_PWD=Xxxx
dminit V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2027-04-14
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

log file path: /data/dmdata/DAMENG/DAMENG01.log

log file path: /data/dmdata/DAMENG/DAMENG02.log

write to dir [/data/dmdata/DAMENG].
create dm database success. 2026-06-03 16:12:20
[dmdba@dmdb01 ~]$

##注册服务
[root@dmdb01 ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMS -dm_ini /data/dmdata/DAMENG/dm.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMS.service to /usr/lib/systemd/system/DmServiceDMS.service.
创建服务(DmServiceDMS)完成

##启动数据库服务
[dmdba@dmdb01 ~]$ /home/dmdba/dmdbms/bin/dmserver /data/dmdata/DAMENG/dm.ini

3.3 开启归档
[dmdba@dmdb01 ~]$ disql SYSDBA/’“xxxxx”’

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 7.427(ms)
disql V8
SQL> ALTER DATABASE MOUNT;
操作已执行
已用时间: 100.598(毫秒). 执行号:0.
SQL> alter database archivelog;
操作已执行
已用时间: 72.202(毫秒). 执行号:0.
SQL> alter database add archivelog ‘dest=/dmarch,type=local,file_size=1024,space_limit=102400’;
操作已执行
已用时间: 17.242(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 73.921(毫秒). 执行号:0.
SQL> alter system switch logfile;
操作已执行
已用时间: 381.435(毫秒). 执行号:0.
SQL>

3.4 备份数据库
SQL> BACKUP DATABASE BACKUPSET ‘/dmbak/DB_FULL_BACKUP_01’;
操作已执行
已用时间: 00:00:18.455. 执行号:65401.
SQL>

3.5 修改dm.ini

[dmdba@dmdb01 DAMENG]$ disql SYSDBA/’“xxxx”’

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 7.321(ms)
disql V8
SQL> SP_SET_PARA_VALUE (2,‘PORT_NUM’,5236);
SP_SET_PARA_STRING_VALUE (2,‘INSTANCE_NAME’, ‘DW01’);
SP_SET_PARA_VALUE (2,‘DW_INACTIVE_INTERVAL’,60);
SP_SET_PARA_VALUE (2,‘ALTER_MODE_STATUS’,0);
SP_SET_PARA_VALUE (2,‘ENABLE_OFFLINE_TS’,2);
SP_SET_PARA_VALUE (2,‘MAL_INI’,1);
SP_SET_PARA_VALUE (2,‘RLOG_SEND_APPLY_MON’,64);

3.6 配置dmarch.ini
[dmdba@dmdb01 DAMENG]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

ARCH_WAIT_APPLY=0
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmarch #本地归档存放路径
ARCH_FILE_SIZE = 2048 #单个归档大小,单位MB
ARCH_SPACE_LIMIT = 102400 #归档上限,单位MB
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DW02 #实时归档目标实例名

3.7 创建dmmal.ini
[dmdba@dmdb01 DAMENG]$ cat dmmal.ini

MAL_CHECK_INTERVAL = 30 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 30 #判定MAL链路断开的时间

[MAL_INST1]
MAL_INST_NAME = DW01 #实例名,和 dm.ini的INSTANCE_NAME一致
MAL_HOST = 192.168.56.10 #MAL系统监听TCP连接的IP地址
MAL_PORT = 5336 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.3.25 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例对外服务端口,和dm.ini的PORT_NUM一致
MAL_DW_PORT = 5436 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = DW02
MAL_HOST = 192.168.56.11
MAL_PORT = 5336
MAL_INST_HOST = 192.168.3.26
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536

3.8 配置dmwatcher.ini
[dmdba@dmdb01 DAMENG]$ cat dmwatcher.ini

[GDW1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #故障自动切换模式
DW_ERROR_TIME = 30 #远程守护进程故障认定时间
INST_ERROR_TIME = 30 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一OGUID值
INST_INI = /data/dmdata/DAMENG/dm.ini #dm.ini文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDMS start #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

3.9 修改sqllog.ini
##对以下参数进行修改
[dmdba@dmdb01 DAMENG]$ cat sqllog.ini

BUF_TOTAL_SIZE = 1024000 #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 10240 #SQLs Log Buffer Size(K)(50~102400)
BUF_KEEP_CNT = 20 #SQLs Log buffer keeped count(1~100)

[SLOG_ALL]
FILE_PATH = /dmbak/dmlogcommit
SWITCH_LIMIT = 128
ASYNC_FLUSH = 1
FILE_NUM = 100

3.10 注册服务
##注册DMS服务
[root@dmdb01 root]# ./dm_service_installer.sh -t dmserver -p DMS -dm_ini /data/dmdata/DAMENG/dm.ini -m mount
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMS.service to /usr/lib/systemd/system/DmServiceDMS.service.
创建服务(DmServiceDMS)完成

##注册DMW服务
[root@dmdb01 root]# ./dm_service_installer.sh -t dmwatcher -p DMW -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDMW.service to /usr/lib/systemd/system/DmWatcherServiceDMW.service.
创建服务(DmWatcherServiceDMW)完成
3.11修改服务脚本
[dmdba@dmdb01 ~]$ vi /home/dmdba/dmdbms/bin/DmServiceDMS
export MALLOC_ARENA_MAX=4
修改为:
export MALLOC_ARENA_MAX=1
四、复制实例和备份到备机
[dmdba@dmdb01 dmdata]$ scp -r DAMENG/ 192.168.56.11:/data/dmdata/
[dmdba@dmdb01 dmbak]$ scp -r DB_FULL_BACKUP_01/ 192.168.56.11:/dmbak
五、备机配置修改
A服务器与B服务器的dmmal.ini、dmwatcher.ini文件配置相同,不做修改。
5.1 修改dm.ini文件
##修改实例名
[dmdba@dmdb02 DAMENG]$ vi /data/dmdata/DAMENG/dm.ini
INSTANCE_NAME = DW02
5.2 修改dmarch.ini
[dmdba@dmdb02 DAMENG]$ vi /data/dmdata/DAMENG/dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

ARCH_WAIT_APPLY=0
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmarch #本地归档存放路径
ARCH_FILE_SIZE = 2048 #单个归档大小,单位MB
ARCH_SPACE_LIMIT = 102400 #归档上限,单位MB
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DW01 #实时归档目标实例名

5.3 注册服务
##注册DMS服务
[root@dmdb02 ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMS -dm_ini /data/dmdata/DAMENG/dm.ini -m mount
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMS.service to /usr/lib/systemd/system/DmServiceDMS.service.
创建服务(DmServiceDMS)完成

##注册DMW服务
[root@dmdb02 ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DMW -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDMW.service to /usr/lib/systemd/system/DmWatcherServiceDMW.service.
创建服务(DmWatcherServiceDMW)完成

5.4 数据恢复
##还原数据文件
[dmdba@dmdb02 ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=“RESTORE DATABASE ‘/data/dmdata/DAMENG/dm.ini’ FROM BACKUPSET ‘/dmbak/DB_FULL_BACKUP_01’”
dmrman V8
RESTORE DATABASE ‘/data/dmdata/DAMENG/dm.ini’ FROM BACKUPSET ‘/dmbak/DB_FULL_BACKUP_01’
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.926

##应用Redo日志
[dmdba@dmdb02 ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=“RECOVER DATABASE ‘/data/dmdata/DAMENG/dm.ini’ FROM BACKUPSET ‘/dmbak/DB_FULL_BACKUP_01’”
dmrman V8
RECOVER DATABASE ‘/data/dmdata/DAMENG/dm.ini’ FROM BACKUPSET ‘/dmbak/DB_FULL_BACKUP_01’
file dm.key not found, use default license!
Error Stack
DM[603]:备份集[/dmbak/DB_FULL_BACKUP_01]备份过程中未产生日志

recover successfully!
time used: 00:00:01.323

##重新生成数据库标识符
[dmdba@dmdb02 ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=“RECOVER DATABASE ‘/data/dmdata/DAMENG/dm.ini’ UPDATE DB_MAGIC”
dmrman V8
RECOVER DATABASE ‘/data/dmdata/DAMENG/dm.ini’ UPDATE DB_MAGIC
file dm.key not found, use default license!
recover successfully!
time used: 00:00:01.318

5.5 修改服务脚本
[dmdba@dmdb02 bin]$ vi /home/dmdba/dmdbms/bin/DmServiceDMS
export MALLOC_ARENA_MAX=4
修改为:
export MALLOC_ARENA_MAX=1

六、监视器配置
6.1 配置确认监视器文件
C服务器:
##确定/data/dmdata目录下有log文件夹

[dmdba@dmmon DAMENG]$ vi /data/dmdata/DAMENG/dmmonitor.ini

MON_DW_CONFIRM = 1 #0为非确认,1为确认
MON_LOG_PATH = /data/dmdata/DAMENG/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位MB

[GDW1]
MON_INST_OGUID = 45331 #组GDW1的唯一OGUID 值
MON_DW_IP = 192.168.56.10:5436 #私网IP对应MAL_HOST
#PORT对MAL_DW_PORT
MON_DW_IP = 192.168.56.11:5436

6.2 配置非确认监视器文件
A、B服务器
[dmdba@dmdb01 dmdata]$ vi /data/dmdata/DAMENG/dmmonitor_n.ini
MON_DW_CONFIRM = 0 #0为非确认,1为确认
MON_LOG_PATH = /data/dmdata/DAMENG/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位MB

[GDW1]
MON_INST_OGUID = 45331 #组GDW1的唯一OGUID 值
MON_DW_IP = 192.168.56.10:5436 #私网IP对应MAL_HOST
#PORT对MAL_DW_PORT
MON_DW_IP = 192.168.56.11:5436
6.3 注册监视器服务
##C服务器,注册确认监视服务器服务
[root@dmmon ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p DMM -monitor_ini /data/dmdata/DAMENG/dmmonitor.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceDMM.service to /usr/lib/systemd/system/DmMonitorServiceDMM.service.
创建服务(DmMonitorServiceDMM)完成

七、启动DW集群
7.1 启动并配置集群信息
A服务器:
[root@dmdb01 ~]# systemctl start DmServiceDMS

[dmdba@dmdb01 ~]$ disql SYSDBA/’“XXXX”’
SQL> SP_SET_OGUID(45331);
DMSQL 过程已成功完成
已用时间: 16.050(毫秒). 执行号:1.
SQL> alter database primary;
操作已执行
已用时间: 92.215(毫秒). 执行号:0.

B服务器:
[root@dmdb02 DAMENG]# systemctl start DmServiceDMS

[dmdba@dmdb02 ~]$ disql SYSDBA/’“XXXX”’
SQL> SP_SET_OGUID(45331);
DMSQL 过程已成功完成
已用时间: 21.966(毫秒). 执行号:1.
SQL> alter database standby;
操作已执行
已用时间: 58.684(毫秒). 执行号:0.
7.2 启动守护进程
A、B服务器启动守护进程
[root@dmdb01/dmdb02 ~]# systemctl start DmWatcherServiceDMW

7.3 启动监视器
C服务器:
[root@dmmon ~]# systemctl start DmMonitorServiceDMM

7.4 启动非确认监视器
[dmdba@dmdb01 ~]$ dmmonitor /data/dmdata/DAMENG/dmmonitor_n.ini

[monitor] 2026-06-04 16:24:20:602: DMMONITOR[4.0] V8
[monitor] 2026-06-04 16:24:20:624: DMMONITOR[4.0] IS READY.

[monitor] 2026-06-04 16:24:20:633:
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DW02), THE FIRST LINE IS SELF INFO.

DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION
2026-06-04 16:24:21 FALSE 2127711210 ::ffff:192.168.56.10 DMMONITOR[4.0] V8

2026-06-04 16:08:53 TRUE 1774775652 ::ffff:192.168.56.12 DMMONITOR[4.0] V8

#-----------------------------------------------------------------------------------------------#

[monitor] 2026-06-04 16:24:20:637: 收到守护进程(DW02)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-04 16:24:21 OPEN OK DW02 OPEN STANDBY NULL 2 47676 47676

[monitor] 2026-06-04 16:24:20:641: 收到守护进程(DW01)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-04 16:24:20 OPEN OK DW01 OPEN PRIMARY VALID 2 47676 47676

监视器命令:
命令 含义
list 查看守护进程的配置信息
show 查看所有实例组的信息
tip 查看系统当前运行状态
login 登录监视器
logout 退出登录
choose switchover GDW1 主机正常:查看可切换为主机的实例列表
switchover GDW1.实例名 主机正常:使用指定组的指定实例,切换为主机
choose takeover GDW1 主机故障:查看可切换为主机的实例列表
takeover GDW1.实例名 主机故障:使用指定组的指定实例,切换为主机
choose takeover force GDW1 强制切换:查看可切换为主机的实例列表
takeover force GDW1.实例名 强制切换:使用指定组的指定实例,切换为主机
主机故障后,在备机执行SELECT SF_DW_CHECK_TAKEOVER();【1:可接管 0:不可接管】

八、DW集群维护
启动:A/B服务器DMS–>A/B服务器守护进程–>C服务器监视器
A机器: systemctl start DmServiceDMS
B机器: systemctl start DmServiceDMS
A/B机器:systemctl start DmWatcherServiceDMW
C机器: systemctl start DmMonitorServiceDMM

停止:C服务器监视器–>A/B机器守护进程–>A服务器DMS–>B服务器DMS
C机器: systemctl stop DmMonitorServiceDMM
A/B机器: systemctl stop DmWatcherServiceDMW
A机器: systemctl stop DmServiceDMS
B机器: systemctl stop DmServiceDMS

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服