注册
达梦8守护集群+异步备库部署及验证
培训园地/ 文章详情 /

达梦8守护集群+异步备库部署及验证

🙈看不见 2025/10/28 176 0 0

本次模拟达梦8—A站点一主一备+B站点异步备库的部署及验证。

1环境

A站点主机:192.168.199.1(DM01)
A站点备机:192.168.199.2(DM02)
B站点异步备机:192.168.199.3(DM03)
安装目录:/home/dmdba/dmdbms
数据目录:/dbdata
备份目录:/dbbak
归档目录:/dbarch
注:现所有数据库服务器已完成数据库的安装及实例创建工作,后续讲解只涉及集群的搭建。

2集群部署

2.1主机全库备份

#使用dmdba用户操作
cd /home/dmdba/dmdbms/bin
./dmrman
RMAN>backup database '/dbdata/DAMENG/dm.ini' backupset '/dbbak/full01';

2.2备份传输及还原

scp -r /dbbak/full01 dmdba@X.X.X.X:/dbbak
#两台备机的还原(dmdba
cd /home/dmdba/dmdbms/bin
./dmrman
RMAN>check backupset '/dbbak/full01';
RMAN>restore database '/dbdata/DAMENG/dm.ini' from backupset '/dbbak/full01';
RMAN>recover database '/dbdata/DAMENG/dm.ini' from backupset '/dbbak/full01';
RMAN>recover database '/dbdata/DAMENG/dm.ini' update DB_MAGIC;

2.3修改dm.ini

#使用dmdba用户操作
vim /dbdata/DAMENG/dm.ini
A主机:
INSTANCE_NAME = DM01
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开MAL系统
ARCH_INI = 1 #打开归档配置
TIMER_INI = 1 #启用定时器

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

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

2.4创建dmmal.ini

#使用dmdba用户操作
vim /dbdata/DAMENG/dmmal.ini
#dmmal.ini配置文件主备机完全一致,可创建完直接传输到备机
MAL_CHECK_INTERVAL = 10
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST1]
MAL_INST_NAME = DM01
MAL_HOST = 192.168.199.1
MAL_PORT = 61141
MAL_INST_HOST = 192.168.199.1
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 192.168.199.2
MAL_PORT = 61141
MAL_INST_HOST = 192.168.199.2
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = DM03
MAL_HOST = 192.168.199.3
MAL_PORT = 61141
MAL_INST_HOST = 192.168.199.3
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141

2.5创建dmarch.ini

#使用dmdba用户操作
vim /dbdata/DAMENG/dmarch.ini
A主机:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dbarch
ARCH_FILE_SIZE = 1024 #根据实际进行调整
ARCH_SPACE_LIMIT = 10240 #根据实际进行调整
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM02 #实时备库实例名
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC
ARCH_DEST = DM03 #异步备库实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和dmtimer.ini中的名称一致
ARCH_SEND_DELAY = 1 #指定源库到异步备库的归档延时发送时间,单位为分钟

A备机:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dbarch
ARCH_FILE_SIZE = 1024 #根据实际进行调整
ARCH_SPACE_LIMIT = 10240 #根据实际进行调整
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM01 #实时主库实例名
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC
ARCH_DEST = DM03 #异步备库实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和dmtimer.ini中的名称一致
ARCH_SEND_DELAY = 1 #指定源库到异步备库的归档延时发送时间,单位为分钟

B备机:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dbarch
ARCH_FILE_SIZE = 1024 #根据实际进行调整
ARCH_SPACE_LIMIT = 10240 #根据实际进行调整
注:异步备库归档仅需本地归档!

2.6创建dmwatcher.ini

#使用dmdba用户操作
vim /dbdata/DAMENG/dmwatcher.ini
A主库:
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #故障自切
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /dbdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1 #打开实例自启功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDM01 start
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

A备库:
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #故障自切
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /dbdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1 #打开实例自启功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDM02 start
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

B备库:
[GRP1]
DW_TYPE = LOCAL #本地守护类型
DW_MODE = MANUAL #故障手切
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /dbdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1 #打开实例自启功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDM03 start

2.7创建dmtimer.ini

#使用dmdba用户操作
vim /dbdata/DAMENG/dmtimer.ini
A主库和A备库:
[RT_TIMER] #和dmarch.ini中的ARCH_TIMER_NAME一致
TYPE = 2 #按日执行
FREQ_MONTH_WEEK_INTERVAL = 1 #当TYPE=2时,表示每隔几天执行,值的有效范围为1到100。
FREQ_SUB_INTERVAL = 0 #当TYPE = 2时,此值无效
FREQ_MINUTE_INTERVAL = 0 #0表示一天执行一次
START_TIME = 00:00:00 #定时器开始时间
END_TIME = 00:00:00 #定时器结束时间
DURING_START_DATE = 2025-10-12 22:00:00 #指定定时器的有效日期范围的起始日期,必须是有效的日期字符串,不可以为空。
DURING_END_DATE = 9999-12-31 23:59:59 #指定定时器的有效日期范围的结束日期,可以为空。如果不为空,必须是有效的日期字符串,同时必须是在DURING_START_DATE日期之后。
NO_END_DATE_FLAG = 1 #是否结束标记。1是,0否
DESCRIBE = RT TIMER #定时器描述
IS_VALID = 1 #定时器有效标记,1:表示已启用定时器

2.8启动数据库并修改状态及OGUID值
A主库:
/home/dmdba/dm/dmdbms/bin/DmServiceDM01 start
/home/dmdba/dm/dmdbms/bin/disql SYSDBA/*****
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE MOUNT;
SP_SET_OGUID(45331);
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

A备库和B备库:
/home/dmdba/dm/dmdbms/bin/DmServiceDM01 start
/home/dmdba/dm/dmdbms/bin/disql SYSDBA/*****
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE MOUNT;
SP_SET_OGUID(45331);
ALTER DATABASE STANDY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

2.9注册并启动数据守护服务

#使用root用户执行
cd /home/dmdba/dmdbms/script/root/
A主库:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/DAMENG/dmwatcher.ini -p DM01
A备库:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/DAMENG/dmwatcher.ini -p DM02
B备库:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/DAMENG/dmwatcher.ini -p DM03
#启动数据守护服务
./DmWatcherServiceDM01 start
./DmWatcherServiceDM02 start
./DmWatcherServiceDM03 start

2.10创建dmmonitor.ini

配置确认监视器
vi /home/dmdba/dmdbms/bin/dmmonitor.ini
vi dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /home/dmdba/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 2048 #限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组GRP1的唯一OGUID值
MON_DW_IP = 192.168.199.1:52141 #A主库,IP和端口对应dmmal.ini中的MAL_HOST,PORT
MON_DW_IP = 192.168.199.2:52141 #A备库,IP和端口对应dmmal.ini中的MAL_HOST,PORT
MON_DW_IP = 192.168.199.3:52141 #B备库,IP和端口对应dmmal.ini中的MAL_HOST,PORT

配置非确认监视器:
vi /home/dmdba/dmdbms/bin/dmmonitor0.ini
MON_DW_CONFIRM = 0 #非确认监视器模式
MON_LOG_PATH = /home/dmdba/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 2048 #限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组GRP1的唯一OGUID值
MON_DW_IP = 192.168.199.1:52141 #A主库,IP和端口对应dmmal.ini中的MAL_HOST,PORT
MON_DW_IP = 192.168.199.2:52141 #A备库,IP和端口对应dmmal.ini中的MAL_HOST,PORT
MON_DW_IP = 192.168.199.3:52141 #B备库,IP和端口对应dmmal.ini中的MAL_HOST,PORT

2.11注册并启动监视器服务

#使用root用户执行
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmmonitor -p MON -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini

启动服务:
/home/dmdba/dmdbms/bin/DmMonitorServiceMON start

2.12验证数据守护

cd /home/dmdba/dmdbms/bin
./dmmonitor dmmonitor0.ini
show

111.png

2.13数据库集群启停

启动:
./DmServiceDM01 start
./DmServiceDM02 start
./DmServiceDM03 start
./DmWatcherServiceDM01 start
./DmWatcherServiceDM02 start
./DmWatcherServiceDM03 start
./DmMonitorServiceMON start

停止集群:关确认监视器,关备守、主守,关主server、关备server
./DmMonitorServiceMON stop
./DmWatcherServiceDM01 stop
./DmWatcherServiceDM02 stop
./DmWatcherServiceDM03 stop
./DmServiceDM01 stop
./DmServiceDM02 stop
./DmServiceDM03 stop

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服