部署类型:数据守护V4.0 部署名称:dmwatcher4_0
========================================================================
配置环境说明
========================================================================
机器名 ip地址 初始状态 操作系统 备注
dmdb 192.168.116.10 主库:EP01 Linux 外网IP:192.168.116.10
内网IP:192.168.116.10
dmdb 192.168.116.20 实时备库:EP02 Linux 外网IP:192.168.116.20
内网IP:192.168.116.20
dmdb 192.168.116.20 监视器dmmonitor Linux 外网IP:192.168.116.20
内网IP:192.168.116.20
========================================================================
端口规划
========================================================================
数据库名 实例名 PORT_NUM(MAL_INST_PORT) MAL_PORT MAL_HOST MAL_DW_PORT MAL_INST_DW_PORT
DMEP EP01 7236 7436 192.168.116.10 7536 7336
DMEP EP02 7236 7436 192.168.116.20 7536 7336
========================================================================
路径规划
========================================================================
数据库安装路径:/dm8/data
数据文件路径:/dm8/data/DMEP/
归档日志路径:/dm8/arch
备份文件路径:/dm8/backup
========================================================================
初始化数据库
========================================================================
簇大小 : 16
页大小 : 8
日志文件大小 : 256
时区设置 : +08:00
页面检查 : 不启用
字符集 : GB18030
USBKEY-PIN : 无
字符串比较大小写敏感 : 是
空格填充模式 : 否
VARCHAR类型以字符为单位 : 否
启用日志文件加密 : 否
改进的字符串HASH算法 : 是
开启ORACLE兼容包 : 是
启用全库加密 : 否
初始化主库实例:
#dmdba用户(EP01)
方法1
cd /dm8/tool
./dbca.sh
方法2
cd /dm8/bin
./dminit PATH=/dm8/data DB_NAME=DMEP INSTANCE_NAME=EP01 PORT_NUM=7236 SYSDBA_PWD=Dameng123
注册主库服务:
#root用户注册服务(EP01)
cd /dm8/script/root/
./dm_service_installer.sh -t dmserver -p EP01 -dm_ini /dm8/data/DMEP/dm.ini
初始化备库实例:
#dmdba用户(EP02)
cd /dm8/bin
./dminit PATH=/dm8/data DB_NAME=DMEP INSTANCE_NAME=EP02 PORT_NUM=7236 SYSDBA_PWD=Dameng123
注册备库服务:
#root用户注册服务(EP02)
cd /dm8/script/root/
./dm_service_installer.sh -t dmserver -p EP02 -dm_ini /dm8/data/DMEP/dm.ini
========================================================================
脱机备份主库,备库还原
========================================================================
重启主库:
dmdba用户
[dmdba@dmdb bin]$ ./DmServiceEP01 start
[dmdba@dmdb bin]$ ./DmServiceEP01 stop
cd /dm8/bin
./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DMEP/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
备库:
scp -r BACKUP_FILE_01/ dmdba@192.168.116.20:/dm8/backup/
执行脱机数据库还原与恢复
dmdba用户
cd /dm8/bin
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DMEP/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMEP/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMEP/dm.ini' UPDATE DB_MAGIC"
========================================================================
主库配置参数
========================================================================
主库:
dm.ini参数介绍
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
dm.ini参数修改
INSTANCE_NAME = EP01
PORT_NUM = 7236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
dmmal.ini参数介绍
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = EP01 #实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.6.170 #MAL 系统监听TCP连接的IP地址
MAL_PORT = 5436 #MAL #MAL 系统监听TCP连接的端口
MAL_INST_HOST = 192.168.6.170 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5536 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5336
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 172.16.6.171
MAL_PORT = 5436
MAL_INST_HOST = 192.168.6.171
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
dmmal.ini参数修改
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 192.168.116.10
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.10
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336
[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 192.168.116.20
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.20
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336
dmarch.ini参数介绍
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 40960 #单位Mb,0表示无限制,范围1024~4294967294M
dmarch.ini参数修改
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = EP02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 0
dmwatcher.ini参数介绍
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库检测备库故障恢复的时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一OGUID值
INST_INI = /data/dmdbms/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #实例自动重启
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
dmwatcher.ini参数修改
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453332
INST_INI = /dm8/data/DMEP/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
启动主库到mount状态
cd /dm8/bin/
./dmserver /dm8/data/DMEP/dm.ini mount
(注意:使用exit或者quit退出,不能ctl+c)
主库配置OGUID和修改数据库模式
[dmdba@dmdb ~]$ cd /dm8/bin
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.10:7236
服务器[192.168.116.10:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 8.164(毫秒). 执行号:0.
SQL> sp_set_oguid(453332);
DMSQL 过程已成功完成
已用时间: 5.304(毫秒). 执行号:1.
SQL> alter database primary;
操作已执行
已用时间: 1.698(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 5.478(毫秒). 执行号:2.
========================================================================
备库配置参数
========================================================================
备库:
dm.ini参数介绍
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
dm.ini参数修改
INSTANCE_NAME = EP02
PORT_NUM = 7236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
dmmal.ini参数介绍
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = EP01 #实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.6.170 #MAL 系统监听TCP连接的IP地址
MAL_PORT = 5436 #MAL #系统监听TCP连接的端口
MAL_INST_HOST = 192.168.6.170 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5536 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5336
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 172.16.6.171
MAL_PORT = 5436
MAL_INST_HOST = 192.168.6.171
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
dmmal.ini参数修改
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 192.168.116.10
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.10
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336
[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 192.168.116.20
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.20
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336
dmarch.ini参数介绍
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 40960 #单位Mb,0表示无限制,范围1024~4294967294M
dmarch.ini参数修改
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = EP01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 0
dmwatcher.ini参数介绍
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库检测备库故障恢复的时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一OGUID值
INST_INI = /data/dmdbms/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #实例自动重启
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
dmwatcher.ini参数修改
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453332
INST_INI = /dm8/data/DMEP/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
启动备库到mount状态
cd /dm8/bin/
./dmserver /dm8/data/DMEP/dm.ini mount
(注意:使用exit或者quit退出,不能ctl+c)
备库配置OGUID和修改数据库模式
[dmdba@dmdb ~]$ cd /dm8/bin
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.20:7236
服务器[192.168.116.20:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 8.164(毫秒). 执行号:0.
SQL> sp_set_oguid(453332);
DMSQL 过程已成功完成
已用时间: 5.304(毫秒). 执行号:1.
SQL> alter database standby;
操作已执行
已用时间: 1.698(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 5.478(毫秒). 执行号:2.
========================================================================
注册并启动守护进程
========================================================================
主库
#root用户注册服务(EP01)
cd /dm8/script/root/
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMEP/dmwatcher.ini -p ep1
备库
#root用户注册服务(EP02)
cd /dm8/script/root/
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMEP/dmwatcher.ini -p ep2
启动主库守护进程服务
root用户
systemctl start DmWatcherServiceep1.service
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.10:7236
服务器[192.168.116.10:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> select name,status$ from v$instance;
行号 NAME STATUS$
---------- ---- -------
1 EP01 MOUNT
已用时间: 7.762(毫秒). 执行号:500.
启动备库守护进程服务
root用户
systemctl start DmWatcherServiceep2.service
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.20:7236
服务器[192.168.116.20:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> select name,status$ from v$instance;
行号 NAME STATUS$
---------- ---- -------
1 EP01 OPEN
已用时间: 7.762(毫秒). 执行号:500.
========================================================================
配置监视器
========================================================================
备库
dmmonitor.ini参数介绍
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /data/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453332 #组 GRP1 的唯一OGUID 值
MON_DW_IP = 172.16.6.170:5536
MON_DW_IP = 172.16.6.171:5536
dmmonitor.ini参数修改
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/monitor/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453332
MON_DW_IP = 192.168.116.10:7536
MON_DW_IP = 192.168.116.20:7536
注册监视器
#root用户注册服务
cd /dm8/script/root/
./dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/data/DMEP/dmmonitor.ini -p m1
启动监视器
systemctl start DmMonitorServicem1.service
查看状态
cd /dm8/bin/
./dmmonitor /dm8/data/DMEP/dmmonitor.ini
#show
实时主备集群重启有顺序要求:
1、关闭监视器
(1)systemctl stop DmMonitorServicem1.service
(2)./dmmonitor /dm8/data/DMEP/dmmonitor.ini
exit
2、关闭主库守护进程
(1)systemctl stop DmWatcherServiceep1.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
exit
3、关闭备库守护进程
(1)systemctl stop DmWatcherServiceep2.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
exit
4、关闭主库实例
(1)systemctl stop DmServiceEP01.service
(2)./DmServiceEP01 stop
5、关闭备库实例
(1)systemctl stop DmServiceEP02.service
(2)./DmServiceEP02 stop
6、启动主库实例 (mount)
(1)systemctl start DmServiceEP01.service
(2)./dmserver /dm8/data/DMEP/dm.ini mount
7、启动备库实例 (mount)
(1)systemctl start DmServiceEP02.service
(2)./dmserver /dm8/data/DMEP/dm.ini mount
8、启动主库守护进程 (open)
(1)systemctl start DmWatcherServiceep1.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
9、启动备库守护进程 (open)
(1)systemctl start DmWatcherServiceep2.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
10、启动监视器
(1)systemctl start DmMonitorServicem1.service
(2)./dmmonitor /dm8/data/DMEP/dmmonitor.ini
实时主备切换:
切换前查看主备状态是否一致
select CKPT_LSN,FILE_LSN,FLUSH_LSN,CUR_LSN from v$rlog;
在监视器里操作
login
用户:sysdba
密码:
[monitor] 2022-01-17 18:14:25: 登陆监视器成功!
choose switchover
Can choose one of the following instances to do switchover:
1: EP01
switchover EP01