rman target / auxiliary sys/admin@STANDBY CMDFILE=/home/oracle/dg.rman LOG=DG.LOG
----------------------------------------------------dg.rman-------------------------
duplicate target database for standby dorecover from active database nofilenamecheck
spfile set db_unique_name='r5'
set LOG_ARCHIVE_DEST_1='LOCATION=/u01/archivelog'
set LOG_ARCHIVE_DEST_2='SERVICE=r2 LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=r2 '
set fal_server='r2'
set fal_client='r5'
set STANDBY_FILE_MANAGEMENT='AUTO'
set control_files='/u01/app/oracle/oradata/r5/control01.ctl','/u01/app/oracle/flash_recovery_area/r5/control02.ctl'
set log_archive_dest_state_2='ENABLE' ;
做active duplicate时报异常,如下:
starting media recovery
archived log for thread 1 with sequence 160 is already on disk as file /u01/archivelog/1_160_918985159.dbf
archived log for thread 1 with sequence 161 is already on disk as file /u01/archivelog/1_161_918985159.dbf
archived log for thread 1 with sequence 162 is already on disk as file /u01/archivelog/1_162_918985159.dbf
unable to find archived log
archived log thread=1 sequence=136
Oracle Error:
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/u01/app/oracle/oradata/r5/system01.dbf'
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 08/16/2016 17:38:32
RMAN-03015: error occurred in stored script Memory Script
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 136 and starting SCN of 13927237
Recovery Manager complete.
删除主库的归档,重启主备库都没什么用,查看v$recover_file也没什么异常。不知道到为什么需要sequence=136
在备库上执行如下:
contents of Memory Script:
{
set until scn 14132610;
recover standby clone database delete archivelog ;
}
ORA-10458: standby database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/u01/app/oracle/oradata/r5/system01.dbf'
select to_char(scn_to_timestamp(14132610),'YYYY-MM-DD HH24:MI:SS') from dual
2 /
TO_CHAR(SCN_TO_TIMESTAMP(14132610),'YY
--------------------------------------
2016-08-16 17:38:25 --时间是最新的
SQL> startup mount restricts
ORACLE instance started.
Total System Global Area 1887350784 bytes
Fixed Size 2214456 bytes
Variable Size 486540744 bytes
Database Buffers 1392508928 bytes
Redo Buffers 6086656 bytes
ORA-01504: database name 'RESTRICTS' does not match parameter db_name 'r2'
restricts写错了
SQL> startup mount
删除备库
SQL>drop database ;
然后在重新操作active duplicate 就没问题了
contents of Memory Script:
{
set until scn 14234530;
recover
standby
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 17-AUG-16
using channel ORA_AUX_DISK_1
starting media recovery
archived log for thread 1 with sequence 167 is already on disk as file /u01/archivelog/1_167_918985159.dbf
archived log file name=/u01/archivelog/1_167_918985159.dbf thread=1 sequence=167
media recovery complete, elapsed time: 00:00:00
Finished recover at 17-AUG-16
Finished Duplicate Db at 17-AUG-16
Recovery Manager complete.
那么可以肯定
ORA-01152: file 1 was not restored from a sufficiently old backup
错误是由于之前恢复失败的文件导致的。
然后备库设置:
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session; -- 启动日志应用 当主库切换日志时,库备才更新
SQL> select process,status ,sequence# from v$managed_standby ;
PROCESS STATUS SEQUENCE#
------------------ ------------------------ ----------
ARCH CONNECTED 0
ARCH CONNECTED 0
ARCH CONNECTED 0
ARCH CONNECTED 0
MRP0 WAIT_FOR_LOG 168
主库的 log_archive_dest_state_2=enable 没设置
主库上运行
alter system set log_archive_dest_state_2=enable ;
备库上
SQL> select process,status ,sequence# from v$managed_standby ;
PROCESS STATUS SEQUENCE#
------------------ ------------------------ ----------
ARCH CLOSING 169
ARCH CONNECTED 0
ARCH CONNECTED 0
ARCH CONNECTED 0
MRP0 APPLYING_LOG 168
RFS IDLE 0
RFS IDLE 0
RFS IDLE 170
RFS IDLE 0
主库上:
sys@R2> select switchover_status from v$database ;
SWITCHOVER_STATUS
----------------------------------------
TO STANDBY
一切ok