注册
exsi环境中搭建dmwatcher进程守护
培训园地/ 文章详情 /

exsi环境中搭建dmwatcher进程守护

风雪 2025/08/14 33 0 0

1、硬件配置
使用exsi虚拟3台云主机
主机名 主机地址 CPU 内存 磁盘 用途
image.png
操作系统软件:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso
数据库软件:dm8_20231109_x86_kylin10_64.iso

2、环境准备
保障每一台机器都安装操作系统、数据库软件
①操作系统分区
/boot 2G
/swap 4G
/ --剩余所有空间
②数据库软件
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config

groupdel dinstall
useradd -g dinstall dmdba
dmdba passwd
mkdir -p dm8
chown -R dmdba:dinstall /dm8
mount -o remount,size=4G /tmp --扩展系统临时空间
mount -o loop /home/soft/dm8_20231109_x86_kylin10_64.iso /mnt
cp /mnt/DMInstall.bin /home/soft/
chown -R dmdba:dinstall /home/soft/DMInstall.bin

Su - dmdba
Vi ~/.bash_profile
export DM_HOME=/dm8
export PATH=$DM_HOME/bin:$PATH

/home/soft/DMInstall.bin -I

③主库安装数据库软件
/dm/tool/dbca.sh
image.png

命令初始化/dm/bin/dminit path=/dm/data/ db_name=DM01 INSTANCE_NAME=DM01 PORT_NUM=32121 log_size=256 RLOG_POSTFIX_NAME=redo SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123
dmrman备份
Backup database '/dm/data/DM01/dm.ini' backupset '/dm/backup/rman_fulldb';
打开归档模式
/dm/bin/disql sysdba/Dmang123
Alter database mount;
alter database add archivelog 'type=local,dest=/dm/data/arch,file_size=64,space_limit=1024';
Alter database archivelog;
Alter database open;

3、dmwacher搭建
①主机目录规划
image.png
②端口规划
image.png

③主库备份并还原到备库

主库执行

root用户执行:systemctl stop DmServiceDM01.service
dmdba用户执行:/dm/bin/dmrman
backup database '/dm/data/DM01/dm.ini' full backupset '/dm/backup/rman_fullbak';

拷贝到备库

scp -r /dm/backup/rman_fullbak root@10.0.0.123:/dm8/backup

备库执行

chown -R dmdba:dinstall /dm/backup/rman_fullbak
/dm8/bin/dmrman
restore database to '/dm8/data/DM02/dm.ini' from backupset '/dm8/backup'; #在目标库上还原
restore database to '/dm8/data/DM02' from backupset '/dm8/backup'; #还原至指定目录
recover database '/dm8/data/DM02/dm.ini' update db_magic;

④主机配置

dm.ini

INSTANCE_NAME = DM01
PORT_NUM = 32121
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1

dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM02

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

dmmal.ini

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM01
MAL_HOST = 10.0.0.121
MAL_PORT = 32141
MAL_INST_HOST = 10.0.0.121
MAL_INST_PORT = 32121
MAL_DW_PORT = 32151
MAL_INST_DW_PORT = 32131

[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 10.0.0.123
MAL_PORT = 32142
MAL_INST_HOST = 10.0.0.123
MAL_INST_PORT = 32122
MAL_DW_PORT = 32152
MAL_INST_DW_PORT = 32132

dmwatcher.ini

[GROUP_A]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 20250802
INST_INI = /dm/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm/bin/dmserver

⑤备机配置

dm.ini

INSTANCE_NAME = DM02
PORT_NUM = 32122
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1

dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM01

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

dmmal.ini

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM01
MAL_HOST = 10.0.0.121
MAL_PORT = 32141
MAL_INST_HOST = 10.0.0.121
MAL_INST_PORT = 32121
MAL_DW_PORT = 32151
MAL_INST_DW_PORT = 32131

[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 10.0.0.123
MAL_PORT = 32142
MAL_INST_HOST = 10.0.0.123
MAL_INST_PORT = 32122
MAL_DW_PORT = 32152
MAL_INST_DW_PORT = 32132

dmwatcher.ini

[GROUP_A]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 20250802
INST_INI = /dm8/data/DM02/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver

⑥集群启动

主库

/dm/bin/dmserver /dm/data/DM01/dm.ini mount
/dm/bin/disql SYSDBA/SYSDBA@localhost:32121
SP_SET_OGUID(20250802);
ALTER DATABASE PRIMARY;

备库

/dm8/bin/dmserver /dm8/data/DM02/dm.ini mount
/dm8/bin/disql SYSDBA/SYSDBA@localhost:32122
SP_SET_OGUID(20250802);
ALTER DATABASE STANDBY;

启动守护进程(主库执行)

/dm/bin/dmwatcher /dmdata/data/DM01/dmwatcher.ini

启动守护进程(主库执行)

/dm8/bin/dmwatcher /dm8/data/DM02/dmwatcher.ini

配置监视器(dmmonitor.ini)

MON_DW_CONFIRM = 1
MON_LOG_PATH = /home/dm8/monitor/log
[GROUP_A]
MON_INST_OGUID = 20250802
MON_DW_IP = 10.0.0.121:32151
MON_DW_IP = 10.0.0.123:32152

启动监视器

/home/dm8/bin/dmmonitor /home/soft/dmmonitor.ini

4.服务管理
①服务注册
/dm/script/root/dm_service_uninstaller.sh -n DmServiceDM01

主库

/dm/script/root/dm_service_installer.sh -t dmserver -p DM01 -dm_ini /dm/data/DM01/dm.ini -m mount
/dm/script/root/dm_service_installer.sh -t dmwatcher -p DM01 -watcher_ini /dm/data/DM01/dmwatcher.ini

备库

/dm8/script/root/dm_service_installer.sh -t dmserver -p DM02 -dm_ini /dm8/data/DM02/dm.ini -m mount
/dm8/script/root/dm_service_installer.sh -t dmwatcher -p DM02 -watcher_ini /dm8/data/DM02/dmwatcher.ini

#监视器
/home/dm8/script/root/dm_service_installer.sh -t dmmonitor -p GROUP_A -monitor_ini /home/soft/dmmonitor.ini

②服务启停顺序

启动顺序

systemctl start DmServiceDM01 # 主库实例
systemctl start DmServiceDM02 # 备库实例
systemctl start DmWatcherServiceDM01 # 主库守护
systemctl start DmWatcherServiceDM02 # 备库守护
systemctl start DmMonitorServiceGROUP_A # 监视器

停止顺序

systemctl stop DmMonitorServiceGROUP_A # 监视器
systemctl stop DmWatcherServiceDM02 # 备库守护
systemctl stop DmWatcherServiceDM01 # 主库守护
systemctl stop DmServiceDM01 # 主库实例
systemctl stop DmServiceDM02 # 备库实例

show查看主备状态
login(输入SYSDBA用户及密码)
switchover进行主备切换
show再次查看主备状态确认是否切换成功
exit退出

本文档介绍了在exsi环境中DM8主备集群的部署流程,需要特别注意的有
①主备库数据库服务启动必须为mount状态
②归档配置文件中ARCH_DEST的参数不能填反了
③配置文件中的路径填写,需根据操作系统类型进行调整。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服