文章目录
一、环境准备
已有DW集群
ip | 实例名 | 端口号 | 安装目录 |
---|---|---|---|
192.168.10.10 | DM01 | 5236 | /dm8 |
192.168.10.20 | DM02 | 5236 | /dm8 |
添加异步备库
ip | 实例名 | 端口号 | 安装目录 |
---|---|---|---|
192.168.10.40 | DM_ASYNC | 5236 | /dm8 |
二、配置异步备库
1.停止主库
[dmdba@localhost bin]$ ./DmWatcherServiceDMDB stop
[dmdba@localhost bin]$ ./DmServiceDMDB stop
2.脱机备份主库
[dmdba@localhost bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/dmdata/5236/DMDB/dm.ini' FULL BACKUPSET '/dm8/bak/bakfull'"
dmrman V8
BACKUP DATABASE '/dmdata/5236/DMDB/dm.ini' FULL BACKUPSET '/dm8/bak/bakfull'
file dm.key not found, use default license!
Database mode = 1, oguid = 453331
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
begin redo pwr log collect, last ckpt lsn: 47702 ...
redo pwr log collect finished
EP[0]'s cur_lsn[49358], file_lsn[49358]
[-8216]:归档日志不完整,请使用dmrman工具执行'repair archive log ...'语句修复归档日志
出现以上报错执行以下命令修复归档
[dmdba@localhost bin]$ ./dmrman
dmrman V8
RMAN> repair archivelog database '/dmdata/5236/DMDB/dm.ini';
repair archivelog database '/dmdata/5236/DMDB/dm.ini';
file dm.key not found, use default license!
Database mode = 1, oguid = 453331
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
begin redo pwr log collect, last ckpt lsn: 47702 ...
redo pwr log collect finished
EP[0]'s cur_lsn[49358], file_lsn[49358]
repair archive log successfully.
repair time used: 353.671(ms)
time used: 356.289(ms)
再进行备份
[dmdba@localhost bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/dmdata/5236/DMDB/dm.ini' FULL BACKUPSET '/dm8/bak/bakfull'"
dmrman V8
BACKUP DATABASE '/dmdata/5236/DMDB/dm.ini' FULL BACKUPSET '/dm8/bak/bakfull'
file dm.key not found, use default license!
Database mode = 1, oguid = 453331
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
begin redo pwr log collect, last ckpt lsn: 47702 ...
redo pwr log collect finished
EP[0]'s cur_lsn[49358], file_lsn[49358]
Processing backupset /dm8/bak/bakfull [Percent:100.00%][Speed:0.00M/s][Cost:00:00:03][Remaining:00:00:00]
backup successfully!
time used: 00:00:04.563
3.拷贝备份文件
[dmdba@localhost bak]$ scp -r bakfull/ dmdba@192.168.10.40:/dm8/
4.备库初始化实例
[root@localhost dm8]# mkdir -p /dmdata/5236
[root@localhost dm8]# chown -R dmdba:dinstall /dmdata/5236/
[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./dminit path=/dmdata/5236/ DB_NAME=DM_ASYNC INSTANCE_NAME=DM_ASYNC charset=1 case_sensitive=1
5.还原和恢复备库
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/5236/DM_ASYNC/dm.ini' FROM BACKUPSET '/dm8/bakfull'"
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/5236/DM_ASYNC/dm.ini' FROM BACKUPSET '/dm8/bakfull'"
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/5236/DM_ASYNC/dm.ini' UPDATE DB_MAGIC"
三、配置文件
1.配置dm.ini文件
主库、实时备库
[dmdba@localhost bin]$ vim /dmdata/5236/DMDB/dm.ini
TIMER_INI = 1
异步备库:
[dmdba@localhost bin]$ vim /dmdata/5236/DM_ASYNC/dm.ini
修改下面参数
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
2.归档配置文件
主库:
[dmdba@localhost bin]$ vim /dmdata/5236/DMDB/dmarch.ini
追加以下内容
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = DM_ASYNC #异步归档目标实例名(主库侧填写异步备库实例名)
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和 dmtimer.ini 中的名称一致
实时备库:
[dmdba@localhost bin]$ vim /dmdata/5236/DMDB/dmarch.ini
追加以下内容
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = DM_ASYNC #异步归档目标实例名(主库侧填写异步备库实例名)
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和 dmtimer.ini 中的名称一致
异步备库:
[root@localhost dm8]# mkdir /dmarch
[root@localhost dm8]# chown -R dmdba:dinstall /dmarch/
[dmdba@localhost bin]$ vim /dmdata/5236/DM_ASYNC/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
3.MAL系统配置文件
三个节点的配置文件相同
[dmdba@localhost bin]$ vim /dmdata/5236/DMDB/dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM01
MAL_HOST = 192.168.10.10
MAL_PORT = 61141
MAL_INST_HOST = 192.168.10.10
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 192.168.10.20
MAL_PORT = 61141
MAL_INST_HOST = 192.168.10.20
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = DM_ASYNC
MAL_HOST = 192.168.10.40
MAL_PORT = 61141
MAL_INST_HOST = 192.168.10.40
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
4.守护进程配置文件
主库、实时备库
[dmdba@localhost bin]$ vim /dmdata/5236/DMDB/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dmdata/5236/DMDB/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
异步备库
[dmdba@localhost bin]$ vim /dmdata/5236/DM_ASYNC/dmwatcher.ini
[GRP1]
DW_TYPE = LOCAL #本地守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 10
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dmdata/5236/DM_ASYNC/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
5.定时器配置文件
主库、实时备库配置即可 配置相同; 异步备库不需要配置
[dmdba@localhost bin]$ vim /dmdata/5236/DMDB/dmtimer.ini
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 11:00:00
END_TIME = 11:01:00
DURING_START_DATE = 2022-11-11 15:00:00
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT_TIMER
IS_VALID = 1
此处定时器配置为每天 11:00:00 触发主库和实时备库发送归档日志到异步备库,起始日期时间是 2022-11-11 的 15:00 。具体可以根据实际情况再做调整
6.监视器配置文件
实时备库:
[dmdba@localhost bin]$ vim /dmdata/5236/DMDB/dmmonitor.ini
MON_LOG_PATH = /dm8/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 4096
MON_DW_CONFIRM = 0
MON_INST_NUM = 3
MON_HB_INTERVAL = 60
MON_BRO_INTERVAL = 100
MON_VOTE_INTERVAL = 100
MON_ID = 1
MON_MID = 45614
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.10.10:52141
MON_DW_IP = 192.168.10.20:52141
MON_DW_IP = 192.168.10.40:52141
7.启动异地备库
[dmdba@localhost bin]$ ./dmserver path=/dmdata/5236/DM_ASYNC/dm.ini mount
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于主库配置状态
登录使用时间 : 12.750(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 25.497(毫秒). 执行号:0.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 5.785(毫秒). 执行号:1.
SQL> alter database standby;
操作已执行
已用时间: 14.370(毫秒). 执行号:0.
SQL>
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS',0);
DMSQL 过程已成功完成
已用时间: 13.722(毫秒). 执行号:2.
SQL>
SQL> exit
8.注册服务
[root@localhost root]# ./dm_service_installer.sh -t dmserver -p DM_ASYNC -dm_ini /dmdata/5236/DM_ASYNC/dm.ini -m mount
[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/5236/DM_ASYNC/dmwatcher.ini
9.后台启动
[dmdba@localhost bin]$ ./DmServiceDM_ASYNC start
Starting DmServiceDM_ASYNC: [ OK ]
[dmdba@localhost bin]$ ./DmWatcherServiceWatcher start
Starting DmWatcherServiceWatcher: [ OK ]
10.启动主库
[dmdba@localhost bin]$ ./DmServiceDMDB start
Starting DmServiceDMDB: [ OK ]
[dmdba@localhost bin]$ ./DmWatcherServiceDMDB start
Starting DmWatcherServiceDMDB: [ OK ]
11.重启实时备库
由于实时备库的配置做了修改,所以需要重启实例以及watcher