RMAN异机恢复遭遇ORA-01547、ORA-01152、ORA-01110错误案例

测试环境:

    操作系统  :  Red Hat Enterprise Linux ES release 4 (Nahant Update 4)   VMWARE

    数据库     :  Oracle Database 10g Release 10.2.0.4.0 - Production

    简要介绍,一台服务器A位于虚拟机VMWARE上,由于测试需要,在VMWARE上克隆了该系统作为服务器B,过了一段时间,由于数据变更,需要将服务器A上的ORACLE数据库还原恢复到服务器B上。

案例介绍:

由于这两台服务器的数据库实例名称相同、以及对应的环境基本一致(恢复目录相同,数据文件、控制文件都是一致),所以虽然是RMAN异机备份,但是这种异机恢复相对而言比较简单,不需要修改实例名称、数据库名称、指定数据文件位置等等。一般来说,这种环境的恢复还原基本没啥问题。下面介绍操作过程以及解决方法。

Step 1:通过FTP将对应的备份文件以及归档日志放置到相应的目录位置。

Step 2:还原数据库的spfile文件。

 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
  

Step 3: 关闭数据库后,利用还原spfile的初始化文件启动数据库

 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
  

Step 4: 恢复数据库控制文件。

 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
  

Step 5: 将数据库启动到mount状态

RMAN> alter database mount;

database mounted

released channel: ORA_DISK_1

Step 6: restore 数据库(中间太多数据文件restore,使用.....替代)

 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
  

Step 7 : recover database

Code Snippet
  1. RMAN> recover database;
  2.  
  3. Starting recover at 02-APR-14
  4.  
  5. using channel ORA_DISK_1
  6.  
  7. starting media recovery
  8.  
  9. Oracle Error:
  10.  
  11. ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
  12.  
  13. ORA-01152: file 1 was not restored from a sufficiently old backup
  14.  
  15. ORA-01110: data file 1: '/u01/app/oracle/oradata/EPPS/system01.dbf'
  16.  
  17. RMAN-00571: ===========================================================
  18.  
  19. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  20.  
  21. RMAN-00571: ===========================================================
  22.  
  23. RMAN-03002: failure of recover command at 04/02/2014 12:03:29
  24.  
  25. RMAN-06053: unable to perform media recovery because of missing log
  26.  
  27. RMAN-06025: no backup of log thread 1 seq 76757 lowscn 14312652139 found to restore
  28.  
  29. RMAN-06025: no backup of log thread 1 seq 76756 lowscn 14312646489 found to restore
  30.  
  31. RMAN-06025: no backup of log thread 1 seq 76755 lowscn 14312646378 found to restore
  32.  
  33. RMAN-06025: no backup of log thread 1 seq 76754 lowscn 14312646262 found to restore
  34.  
  35. RMAN-06025: no backup of log thread 1 seq 76753 lowscn 14312644427 found to restore
  36.  
  37. RMAN-06025: no backup of log thread 1 seq 76752 lowscn 14312642030 found to restore
  38.  
  39. RMAN-06025: no backup of log thread 1 seq 76751 lowscn 14312640281 found to restore
  40.  
  41. RMAN-06025: no backup of log thread 1 seq 76750 lowscn 14312638600 found to restore
  42.  
  43. RMAN-06025: no backup of log thread 1 seq 76749 lowscn 14312637270 found to restore
  44.  
  45. RMAN-06025: no backup of log thread 1 seq 76748 lowscn 14312636566 found to restore
  46.  
  47. RMAN-06025: no backup of log thread 1 seq 76747 lowscn 14312635786 found to restore
  48.  
  49. RMAN-06025: no backup of log thread 1 seq 76746 lowscn 14312634976 found to restore
  50.  
  51. RMAN-06025: no backup of log thread 1 seq 76745 lowscn 14312634196 found to restore
  52.  
  53. RMAN-06025: no backup of log thread 1 seq 76744 lowscn 14312633426 found to restore
  54.  
  55. RMAN-06025: no backup of log thread 1 seq 76743 lowscn 14312632650 found to restore
  56.  
  57. RMAN-06025: no backup of log thread 1 seq 76742 lowscn 14312631880 found to restore
  58.  
  59. RMAN-06025: no backup of log thread 1 seq 76741 lowscn 14312631120 found to restore
  60.  
  61. RMAN-06025: no backup of log thread 1 seq 76740 lowscn 14312630358 found to restore
  62.  
  63. RMAN-06025: no backup of log thread 1 seq 76739 lowscn 14312629580 found to restore
  64.  
  65. RMAN-06025: no backup of log thread 1 seq 76738 lowscn 14312628812 found to restore
  66.  
  67. RMAN-06025: no backup of log thread 1 seq 76737 lowscn 14312628019 found to restore
  68.  
  69. RMAN-06025: no backup of log thread 1 seq 76736 lowscn 14312627239 found to restore
  70.  
  71. RMAN-06025: no backup of log thread 1 seq 76735 lowscn 14312626460 found to restore
  72.  
  73. RMAN-06025: no backup of log thread 1 seq 76734 lowscn 14312625692 found to restore
  74.  
  75. RMAN-06025: no backup of log thread 1 seq 76733 lowscn 14312624924 found to restore
  76.  
  77. RMAN-06025: no backup of log thread 1 seq 76732 lowscn 14312624157 found to restore
  78.  
  79. RMAN-06025: no backup of log thread 1 seq 76731 lowscn 14312623377 found to restore
  80.  
  81. RMAN-06025: no backup of log thread 1 seq 76730 lowscn 14312622598 found to restore
  82.  
  83. RMAN-06025: no backup of log thread 1 seq 76729 lowscn 14312621836 found to restore
  84.  
  85. RMAN-06025: no backup of log thread 1 seq 76728 lowscn 14312621062 found to restore
  86.  
  87. RMAN-06025: no backup of log thread 1 seq 76727 lowscn 14312620313 found to restore
  88.  
  89. RMAN-06025: no backup of log thread 1 seq 76726 lowscn 14312618674 found to restore
  90.  
  91. RMAN-06025: no backup of log thread 1 seq 76725 lowscn 14312607258 found to restore
  92.  
  93. RMAN-06025: no backup of log thread 1 seq 76723 lowscn 14312598248 found to restore
  94.  
  95. RMAN-06025: no backup of log thread 1 seq 76722 lowscn 14312595919 found to restore
  96.  
  97. RMAN-06025: no backup of log thread 1 seq 76721 lowscn 14312593602 found to restore
  98.  
  99. RMAN-06025: no backup of log thread 1 seq 76720 lowscn 14312591274 found to restore
  100.  
  101. RMAN-06025: no backup of log thread 1 seq 76719 lowscn 14312588510 found to restore
  102.  
  103. RMAN-06025: no backup of log thread 1 seq 76718 lowscn 14312585861 found to restore
  104.  
  105. RMAN-06025: no backup of log thread 1 seq 76717 lowscn 14312583716 found to restore
  106.  
  107. RMAN-06025: no backup of log thread 1 seq 76716 lowscn 14312581142 found to restore
  108.  
  109. RMAN-06025: no backup of log thread 1 seq 76715 lowscn 14312578120 found to restore
  110.  
  111. RMAN-06025: no backup of log thread 1 seq 76714 lowscn 14312575570 found to restore
  112.  
  113. RMAN-06025: no backup of log thread 1 seq 76713 lowscn 14312572908 found to restore
  114.  
  115. RMAN-06025: no backup of log thread 1 seq 76712 lowscn 14312569377 found to restore
  116.  
  117. RMAN-06025: no backup of log thread 1 seq 76711 lowscn 14312200784 found to restore
  118.  
  119. RMAN-06025: no backup of log thread 1 seq 76710 lowscn 14312113790 found to restore
  120.  
  121. RMAN-06025: no backup of log thread 1 seq 76709 lowscn 14312070694 found to restore
  122.  
  123. RMAN-06025: no backup of log thread 1 seq 76708 lowscn 14312069907 found to restore
  124.  
  125. RMAN-06025: no backup of log thread 1 seq 76707 lowscn 14312069494 found to restore
  126.  
  127. RMAN-06025: no backup of log thread 1 seq 76706 lowscn 14312042189 found to restore
  128.  
  129. RMAN-06025: no backup of log thread 1 seq 76705 lowscn 14312014827 found to restore
  130.  
  131. RMAN-06025: no backup of log thread 1 seq 76704 lowscn 14311999274 found to restore
  132.  
  133. RMAN-06025: no backup of log thread 1 seq 76703 lowscn 14311967291 found to restore
  134.  
  135. RMAN-06025: no backup of log thread 1 seq 76702 lowscn 14311962023 found to restore
  136.  
  137. MAN-06025: no backup of log thre
  138.  
  139. RMAN>

截图如下所示

image

关于ORA-01547的解释如下所示:

 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
  

此错误的最可能的原因是执行不完全恢复前。忘记从一个足够旧的备份还原一个或 多个数据文件。

Step 8:

   1: RMAN> alter database open resetlogs;
   2:  
   3: RMAN-00571: ===========================================================
   4:  
   5: RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
   6:  
   7: RMAN-00571: ===========================================================
   8:  
   9: RMAN-03002: failure of alter db command at 04/02/2014 12:04:53
  10:  
  11: ORA-01152: file 1 was not restored from a sufficiently old backup
  12:  
  13: ORA-01110: data file 1: '/u01/app/oracle/oradata/EPPS/system01.dbf'
  14:  
  15: RMAN>
  16:  
  17: RMAN> exit

关于open resetlogs选项,是指打开数据时,重置联机重做日志(online redo log),即将重做日志的sequence置零,为什么要重置重做日志呢?不完全恢复后,原来的联机重做日志(online redo log)里面包含的是未做恢复前的数据,而这些数据对于恢复后的数据库不再有效,所以数据库会要求在open之前先对联机重做日志(online redo log)的sequence置零。Resetlogs命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,每次使用Resetlogs命令的时候,SCN不会被重置,不过ORACLE会重置日志序列号,而且会重置联机重做日志内容(相当于把所有的联机日志重新“格式化”)。

解决方法

此时可以通过设置隐藏参数_allow_resetlogs_corruption之后,使数据库在Open过程中,跳过某些一致性检查,从而使数据库可能跳过不一致状态。操作步骤如下

Code Snippet
  1. [oracle@DB-Server 2014_04_01]$ sqlplus / as sysdba
  2.  
  3. SQL*Plus: Release 10.2.0.4.0 - Production on Wed Apr 2 12:05:57 2014
  4.  
  5. Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
  6.  
  7. Connected to:
  8.  
  9. Oracle Database 10g Release 10.2.0.4.0 - Production
  10.  
  11. SQL> create spfile from pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initEPPS.ora';
  12.  
  13. File created.
  14.  
  15. SQL> shutdown immediate;
  16.  
  17. ORA-01109: database not open
  18.  
  19. Database dismounted.
  20.  
  21. ORACLE instance shut down.
  22.  
  23. SQL> startup mount;
  24.  
  25. ORACLE instance started.
  26.  
  27. Total System Global Area 1258291200 bytes
  28.  
  29. Fixed Size 1267236 bytes
  30.  
  31. Variable Size 822086108 bytes
  32.  
  33. Database Buffers 419430400 bytes
  34.  
  35. Redo Buffers 15507456 bytes
  36.  
  37. Database mounted.
  38.  
  39. SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
  40.  
  41. System altered.
  42.  
  43. SQL> recover database using backup controlfile until cancel;
  44.  
  45. ORA-00279: change 14311145729 generated at 04/01/2014 08:57:48 needed for
  46.  
  47. thread 1
  48.  
  49. ORA-00289: suggestion :
  50.  
  51. /u03/flash_recovery_area/EPPS/archivelog/2014_04_02/o1_mf_1_76627_%u_.arc
  52.  
  53. ORA-00280: change 14311145729 for thread 1 is in sequence #76627
  54.  
  55. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
  56.  
  57. cancel
  58.  
  59. Media recovery cancelled.
  60.  
  61. SQL> alter database open resetlogs;
  62.  
  63. Database altered.
  64.  
  65. SQL> select status from v$instance;
  66.  
  67. STATUS
  68.  
  69. ------------
  70.  
  71. OPEN

截图如下所示

image

使用了隐藏参数_allow_resetlogs_corruption后,需要从参数文件(pfile或spfile中)移除隐藏参数,并对数据库进行导入导出比较好,不过此处都是测试数据库,重要性不是很高。在此忽略这些步骤。

参考资料:

http://zionw.blog.163.com/blog/static/9985959200911111181377/

http://blog.itpub.net/751371/viewspace-709644

http://hirtom.blog.163.com/blog/static/31182683200751204727172/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值