ORACLE ADR 不能直接执行repair failure,需要先执行advice failure,生成修复脚本



正确答案:D

 

一、模拟上题的错误:

1、删除4号文件

[html] view plain copy
  1. [oracle@mydb ~]$ cd /u01/app/oracle/oradata/ocm/  
  2. [oracle@mydb ocm]$ rm -rf users01.dbf  

2、数据库宕机

[html] view plain copy
  1. sys@OCM> shutdown abort;  
  2. ORACLE instance shut down.  

3、启动数据库报错,与上题报错一样

[html] view plain copy
  1. sys@OCM> startup  
  2. ORACLE instance started.  
  3.   
  4. Total System Global Area  839282688 bytes  
  5. Fixed Size                  2233000 bytes  
  6. Variable Size             583011672 bytes  
  7. Database Buffers          247463936 bytes  
  8. Redo Buffers                6574080 bytes  
  9. Database mounted.  
  10. ORA-01157: cannot identify/lock data file 4 - see DBWR trace file  
  11. ORA-01110: data file 4: '/u01/app/oracle/oradata/ocm/users01.dbf'  

4、如果试图在没有执行advise failure命令时使用repair failure命令,将出现如下错误:

[html] view plain copy
  1. [oracle@mydb ~]$ rman target /  
  2. RMAN> repair failure;  
  3.   
  4. using target database control file instead of recovery catalog  
  5. RMAN-00571: ===========================================================  
  6. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============  
  7. RMAN-00571: ===========================================================  
  8. RMAN-03002: failure of repair command at 09/01/2013 23:15:16  
  9. RMAN-06954: REPAIR command must be preceded by ADVISE command in same session  

   主要原因是:在运行repairfailure之前,要先运行advise failure,让rman列出错误,并且生成修复脚本,之后运行repair failure修复错误。

一、正确的恢复的过程如下:

1、      启动RMAN客户机,并使用前一节介绍的数据库修复命令来解决丢失数据问题,我们从list failure命令开始:

[html] view plain copy
  1. RMAN> list failure;  
  2.   
  3. List of Database Failures  
  4. =========================  
  5.   
  6. Failure ID Priority Status    Time Detected Summary  
  7. ---------- -------- --------- ------------- -------  
  8. 2002       HIGH     OPEN      01-SEP-13     One or more non-system datafiles are missing  


2、advisefailure命令对记录在自动诊断信息库中的所有故障给出建议。默认时,此命令只列出具有critical或high优先级的那些故障。除了产生所有输入故障的摘要外,此命令还对每个故障提供一个建议修复选项。通常,advise failure命令同时给出自动和手动修复选项。在advisefailure命令输出结束时,RMAN生成一个脚本,列出建议的修复选项的细节。如果你想自己进行修复,可以直接使用这个脚本,或者对它进行修改。

  

[html] view plain copy
  1. RMAN> advise failure;  
  2.   
  3. List of Database Failures  
  4. =========================  
  5.   
  6. Failure ID Priority Status    Time Detected Summary  
  7. ---------- -------- --------- ------------- -------  
  8. 2002       HIGH     OPEN      01-SEP-13     One or more non-system datafiles are missing  
  9.   
  10. analyzing automatic repair options; this may take some time  
  11. allocated channel: ORA_DISK_1  
  12. channel ORA_DISK_1: SID=10 device type=DISK  
  13. analyzing automatic repair options complete  
  14.   
  15. Mandatory Manual Actions  
  16. ========================  
  17. no manual actions available  
  18.   
  19. Optional Manual Actions  
  20. =======================  
  21. 1. If file /u01/app/oracle/oradata/ocm/users01.dbf was unintentionally renamed or moved, restore it  
  22.   
  23. Automated Repair Options  
  24. ========================  
  25. Option Repair Description  
  26. ------ ------------------  
  27. 1      Restore and recover datafile 4    
  28.   Strategy: The repair includes complete media recovery with no data loss  
  29.   Repair script: /u01/app/oracle/diag/rdbms/ocm/ocm/hm/reco_3275375759.hm  

3、利用advise failure命令提供的建议,epair  failure根据建议修复错误。

[html] view plain copy
  1. RMAN> repair failure;  
  2.   
  3. Strategy: The repair includes complete media recovery with no data loss  
  4. Repair script: /u01/app/oracle/diag/rdbms/ocm/ocm/hm/reco_3275375759.hm  
  5.   
  6. contents of repair script:  
  7.    # restore and recover datafile  
  8.    restore datafile 4;  
  9.    recover datafile 4;  
  10.    sql 'alter database datafile 4 online';  
  11.   
  12. Do you really want to execute the above repair (enter YES or NO)? Y  
  13. executing repair script  
  14.   
  15. Starting restore at 01-SEP-13  
  16. using channel ORA_DISK_1  
  17.   
  18. channel ORA_DISK_1: starting datafile backup set restore  
  19. channel ORA_DISK_1: specifying datafile(s) to restore from backup set  
  20. channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/ocm/users01.dbf  
  21. channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/dbs/0uoiptgq_1_1  
  22. channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/dbs/0uoiptgq_1_1 tag=TAG20130901T230250  
  23. channel ORA_DISK_1: restored backup piece 1  
  24. channel ORA_DISK_1: restore complete, elapsed time: 00:00:03  
  25. Finished restore at 01-SEP-13  
  26.   
  27. Starting recover at 01-SEP-13  
  28. using channel ORA_DISK_1  
  29.   
  30. starting media recovery  
  31. media recovery complete, elapsed time: 00:00:01  
  32.   
  33. Finished recover at 01-SEP-13  
  34.   
  35. sql statement: alter database datafile 4 online  
  36. repair failure complete  
  37.   
  38. Do you want to open the database (enter YES or NO)? Y  
  39. database opened  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章