做activer duplicate时报ORA-01152异常

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值