注册
DM8datawatch集群安装
专栏/技术分享/ 文章详情 /

DM8datawatch集群安装

wangbw1009 2026/02/27 275 0 0
摘要

一、原理
DM 数据守护 (Data Watch) 的实现原理非常简单:将主库(生产库)产生的 REDO 日志传输到备库,备库接收并重新应用 REDO 日志,从而实现备库与主库的数据同步。主要用作异地容灾使用。

DM 数据守护系统主要由主库、备库、REDO 日志、REDO 日志传输、REDO 日志重演、守护进程 (dmwatcher)、监视器 (dmmonitor) 组成,如下图所示
image.png

二、安装前准备
1.IP规划
image.png
2.端口规划:
image.png
三、开始安装
1.初始化实例
初始化两个实例:
Dwz主库
cd $DM_HOME/bin
./dminit path=/dmdata/data/instance PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMDWZA INSTANCE_NAME=dmdwz PORT_NUM=3308 SYSDBA_PWD=Wangbowen123! SYSAUDITOR_PWD=Wangbowen123!
image.png
注册服务:
su – root
cd /dmdata/data/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/instance/DMDWZA/dm.ini -p DMDWZ
image.png
登录测试
image.png
Dwb备库
cd $DM_HOME/bin
./dminit path=/dmdata/data/instance PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMDWBB INSTANCE_NAME=dmdwb PORT_NUM=3309 SYSDBA_PWD=Wangbowen123! SYSAUDITOR_PWD=Wangbowen123!
image.png
注册服务:
su – root
cd /dmdata/data/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/instance/DMDWBB/dm.ini -p DMDWB
image.png
拉起服务,登录测试
image.png
2.打开主备库归档,重启服务
修改dmarch.ini

#dm8 path
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 500 #单个归档文件大小单位:M
ARCH_SPACE_LIMIT = 0
EOF

修改dm.ini文件的ARCH_INI=1
Dwz和Dwb都修改(dm.ini中修改,然后重启服务)
image.png
3.备份主库数据,从备库进行恢复。

dmrman CTLSTMT="BACKUP DATABASE ‘/dmdata/data/instance/DMDWZA/dm.ini’ FULL TO BACKUP_FILE1 BACKUPSET ‘/dmdata/dmbak’
image.png
scp备份文件到备库:
[dmdba@dwz dmbak]$ scp * dmdba@10.10.122.18:/dmdata/dmbak
image.png
从备库恢复数据:
[dmdba@dmb dmbak]$ dmrman CTLSTMT=“RESTORE DATABASE ‘/dmdata/data/instance/DMDWBB/dm.ini’ FROM BACKUPSET ‘/dmdata/dmbak’”
备库数据库更新:
[dmdba@dmb dmbak]$ dmrman CTLSTMT=“RECOVER DATABASE ‘/dmdata/data/instance/DMDWBB/dm.ini’ UPDATE DB_MAGIC”
4.配置主库同步参数

修改dm.ini参数
主库:
vi /dmdata/data/instance/DMDWZA/dm.ini

INSTANCE_NAME = dmdwz #实例名
PORT_NUM = 3308 #数据库实例监听端口
DW_PORT = 3608 #守护环境下,监听守护进程连接端口
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

备库:
vi /dmdata/data/instance/DMDWBB/dm.ini
INSTANCE_NAME = dmdwb #实例名
PORT_NUM = 3309 #数据库实例监听端口
DW_PORT = 3609 #守护环境下,监听守护进程连接端口
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息

修改主备dmmal.ini(主备参数一致)

cd /dmdata/data/instance/DMDWZA/
cat <<EOF >>dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = dmdwz #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.11.12 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 3408 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.10.122.17 #实例的对外服务 IP 地址
MAL_INST_PORT = 3308 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 3508 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = dmdwb
MAL_HOST = 10.10.11.13
MAL_PORT = 3409
MAL_INST_HOST = 10.10.122.18
MAL_INST_PORT = 3309
MAL_DW_PORT = 3509
EOF

备库:
cd /dmdata/data/instance/DMDWBB/
cat <<EOF >>dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = dmdwz #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.11.12 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 3408 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.10.122.17 #实例的对外服务 IP 地址
MAL_INST_PORT = 3308 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 3508 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = dmdwb
MAL_HOST = 10.10.11.13
MAL_PORT = 3409
MAL_INST_HOST = 10.10.122.18
MAL_INST_PORT = 3309
MAL_DW_PORT = 3509
EOF

配置dmwatcher.ini
主库配置:

cat <<EOF >> dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 350211 #守护系统唯一 OGUID 值
INST_INI = /dmdata/data/instance/DMDWZA/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dmdata/data/bin/DmServiceDMDWZ start #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
EOF
 
备库配置 dmwatcher.ini
cat <<EOF >> dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 350211 #守护系统唯一 OGUID 值
INST_INI = /dmdata/data/instance/DMDWBB/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dmdata/data/bin/DmServiceDMDWB start #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
EOF

以mount方式启动主数据库:
dmserver /dmdata/data/instance/DMDWZA/dm.ini mount
前台启动到mount,可以另开一个窗口通过disql连接执行命令
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>sp_set_oguid(350211);
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
SQL>alter database primary;
image.png
以mount方式启动备数据库
dmserver /dmdata/data/instance/DMDWBB/dm.ini mount
前台启动到mount,可以另开一个窗口通过disql连接执行命令
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>sp_set_oguid(350211);
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
SQL>alter database standby;
image.png
5.监视器配置

三节点dwm配置监视器
cat <<EOF >>dmmonitor.ini
MON_DW_CONFIRM = 1
#确认监视器模式
MON_LOG_PATH = /dmdata/data/data
#监视器日志文件存放路径
MON_LOG_INTERVAL = 60
#每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32
#每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0
#不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 350211 #组GRP1的唯一OGUID值
#以下配置为监视器到组GRP1的守护进程的连接信息,以―IP:PORT‖的形式配置
#IP 对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 10.10.11.12:3508
MON_DW_IP = 10.10.11.13:3509
EOF

启动守护进程和监视器:主备启动守护进程,dwm启动监视器进程
[dmdba@dmz bin]$ dmwatcher dmwatcher.ini
image.png
[dmdba@dmb bin]$ dmwatcher dmwatcher.ini
image.png
[dmdba@dameng bin]$
image.png
将监视器dmmonitor和守护进程加入后台启动

使用root用户
cd /home/dmdba/dm/dmdbms/script/root/
主库
./dm_service_installer.sh -t dmwatcher -p dmwatcherd -i /dmdata/data/instance/DMDWZA/dmwatcher.ini
备库
./dm_service_installer.sh -t dmwatcher -p dmwatcherd -i /dmdata/data/instance/DMDWBB/dmwatcher.ini
Monitor服务器
./dm_service_installer.sh -t dmmonitor -p dmmonitord -i /dmdata/data/data/dmmonitor.ini
服务名:DmWatcherServicedmwatcherd、DmWatcherServicedmwatcherd、DmMonitorServicedmmonitord

主备集群重启顺序
启动:主备库实例 → 主备库守护进程 → 监视器
关闭:监视器 → 主备库守护进程 → 主备库实例

社区地址:https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服