Oracle 11g記錄檔恢複

來源:互聯網
上載者:User

這次實驗類比一下,Oracle 11g在非歸檔模式下,且沒有備份的條件,進行的記錄檔的恢複
這裡所有的redo日誌都被我刪除了,下面是報錯和資料庫模式:
SQL> startup
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size            645926508 bytes
Database Buffers          192937984 bytes
Redo Buffers                5144576 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/myorcl/redo1.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/myorcl/redo01.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
SQL> select log_mode,open_mode from v$database;
LOG_MODE    OPEN_MODE
------------ --------------------
NOARCHIVELOG MOUNTED

首先,我們要用resetlogs的方法嘗試開啟資料庫:
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery

提示resetlogs這個選項只有在一個不完全資料庫恢複後才可以使用,既然這樣,我們就給它做一個資料庫恢複:
SQL> recover database using backup controlfile;
ORA-00279: change 1736992 generated at 01/18/2014 18:01:56 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/product/11.2.0/db_1/ora_log/1_1_837194464.dbf
ORA-00280: change 1736992 for thread 1 is in sequence #1
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00308: cannot open archived log
'/u01/app/oracle/product/11.2.0/db_1/ora_log/1_1_837194464.dbf'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

下面,我們再來resetlogs啟動資料庫:
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/app/oracle/oradata/myorcl/system01.dbf'

提示要進行介質恢複,因為我們根本沒有redo日誌,根本沒有辦法恢複,只能通過添加隱藏參數,讓資料庫忽略資料一致性驗證:
SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
System altered.
SQL> startup force mount;
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size            645926508 bytes
Database Buffers          192937984 bytes
Redo Buffers                5144576 bytes
Database mounted.

到這裡,再來添加resetlogs選項,來開啟資料庫:
SQL> alter database open resetlogs;
Database altered.

資料庫開啟了,但是還沒有結束,我們要將修改的隱藏參數修改到預設值,並重新啟動資料庫:
SQL> alter system reset "_allow_resetlogs_corruption" scope=spfile;
System altered.
SQL> startup force;
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size            645926508 bytes
Database Buffers          192937984 bytes
Redo Buffers                5144576 bytes
Database mounted.
Database opened.
SQL> select KSPPINM,KSPPSTVL from x$ksppi a,x$ksppcv b where a.indx=b.indx and ksppinm like '%resetlogs%';
KSPPINM
--------------------------------------------------------------------------------
KSPPSTVL
--------------------------------------------------------------------------------
_no_recovery_through_resetlogs
FALSE
_allow_resetlogs_corruption
FALSE

這裡可以看到這個隱藏參數已經變成false了。這就完成了記錄檔的恢複。

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.