丟失一個控制檔案並恢復資料庫

skyin_1603發表於2016-11-23
只丟失或損壞一個控制檔案的情況下來恢復資料庫,相對來說簡單一點。一般來說,控制檔案都需要形成
一個多路徑冗餘策略,來提高資料庫的安全性。這樣的話只需將完好的控制檔案複製一個副本放到丟失或者
損壞了的控制檔案所在路徑的目錄下,這樣啟動資料庫就能夠識別得到控制檔案,也就能夠恢復資料庫了。
以下是測試的過程:

----丟失一個控制檔案恢復資料庫:

---檢視控制檔案的資訊:

sys@PROD>select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/PROD/control01.ctl

/u01/app/oracle/fast_recovery_area/PROD/control02.ctl


---刪除2號控制檔案模擬丟失控制檔案:

[oracle@enmo PROD]$ pwd

/u01/app/oracle/fast_recovery_area/PROD

[oracle@enmo PROD]$ ls

archivelog  autobackup  control02.ctl  onlinelog

[oracle@enmo PROD]$ rm control02.ctl

[oracle@enmo PROD]$ ls

archivelog  autobackup  onlinelog

[oracle@enmo PROD]$

#已經成功刪除2號控制檔案。


---嘗試建立一個表空間:

sys@PROD>create tablespace test datafile

  2  '/u01/app/oracle/oradata/PROD/test01.dbf' size 10M;

create tablespace test datafile

*

ERROR at line 1:

ORA-00210: cannot open the specified control file

ORA-00202: control file:

'/u01/app/oracle/fast_recovery_area/PROD/control02.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

#報錯:ORA-00210,不能識別並把建立表空間的資訊註冊到2號控制檔案。

---嘗試關庫:

sys@PROD>shutdown immediate;

ORA-00210: cannot open the specified control file

ORA-00202: control file: '/u01/app/oracle/fast_recovery_area/PROD/control02.ctl'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

sys@PROD>

#同樣的報錯ORA-00210

---強行關庫:

sys@PROD>shutdown abort;

ORACLE instance shut down.

sys@PROD>

---退出sqlplus並重新登入資料庫:

[oracle@enmo ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Nov 22 23:30:48 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.


PROD>startup

ORACLE instance started.


Total System Global Area  835104768 bytes

Fixed Size                  2257840 bytes

Variable Size             507513936 bytes

Database Buffers          322961408 bytes

Redo Buffers                2371584 bytes

ORA-00205: error in identifying control file, check alert log for more info

#報錯:ORA-00205,能識別並開啟控制檔案。

--檢視此時例項的狀態:

PROD>select status from v$instance;

STATUS

------------

STARTED


---系統層從1號控制檔案複製一個放到2號控制檔案原來的目錄:

[oracle@enmo PROD]$ pwd

/u01/app/oracle/oradata/PROD

[oracle@enmo PROD]$ cp control01.ctl /u01/app/oracle/fast_recovery_area/PROD/control02.ctl

[oracle@enmo PROD]$


[oracle@enmo PROD]$ pwd

/u01/app/oracle/fast_recovery_area/PROD

[oracle@enmo PROD]$ ls

archivelog  autobackup  control02.ctl  onlinelog

#完成複製。


---把例項調至mount狀態與open狀態:

PROD>alter database mount;

Database altered.

PROD>alter database open;

Database altered.

#控制恢復完成,資料庫恢復完成。

--這種情況恢復資料庫的難度不到,工作量也相對少一點,最關鍵一點就是丟失一個或多個控制檔案後,
能夠有且至少還有一個冗餘的控制檔案對映。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2128902/,如需轉載,請註明出處,否則將追究法律責任。

相關文章