【備份恢復】 丟失一個控制檔案 之恢復操作

不一樣的天空w發表於2016-10-20

丟失一個控制檔案
1) 刪除 2 控制檔案,製造錯誤

[oracle@wang ~]$ cd /u01/app/oracle/oradata/ORA11GR2/

[oracle@wang ORA11GR2]$

[oracle@wang ORA11GR2]$ pwd

/u01/app/oracle/oradata/ORA11GR2

[oracle@wang ORA11GR2]$

[oracle@wang ORA11GR2]$ ls cont*

control01.ctl  control02.ctl

[oracle@wang ORA11GR2]$ rm control01.ctl

[oracle@wang ORA11GR2]$ ls cont*

control02.ctl

[oracle@wang ORA11GR2]$

 

2) sysdba 身份登入 sqlplus 建立一個表空間,當建立表空間時(即資料庫結構發生變化,更新控制檔案,出現了錯誤)

SYS@ORA11GR2>select status from v$instance;

 

STATUS

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

OPEN

 

SQL> create tablespace ts_control datafile   2  '/u01/app/oracle/oradata/ORA11GR2/ts_control.dbf' size 10m;

create tablespace ts_control datafile

*

ERROR at line 1:

ORA-00210: cannot open the specified control file

ORA-00202: control file: '/u01/app/oracle/oradata/ORA11GR2/control01.ctl'

ORA-27041: unable to open file

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

Additional information: 3

 

3) 退出 sqlplus,重新登入資料庫
可以正常登入(這點跟控制檔案認為版本不一致略有同),沒有顯示錯誤,此時要恢復控制檔案,需要
shutdown發現 shutdown immediate 是無法 down 下來的,只能 shutdown abort

 

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@wang ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Fri Sep 23 06:39:58 2016

 

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

 
Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> select status from v$instance;

 

STATUS

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

OPEN

 

SQL> shutdown immediate;

ORA-00210: cannot open the specified control file

ORA-00202: control file: '/u01/app/oracle/oradata/ORA11GR2/control01.ctl'

ORA-27041: unable to open file

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

Additional information: 3

SQL>

SQL> shutdown abort;

ORACLE instance shut down.

 

4) 透過啟動資料庫時的錯誤提示資訊我們已經清楚的知道, 2 號控制檔案找不到了,複製現有的控制文件,並命名為 2 號控制檔案

SQL> host

[oracle@wang ~]$ cd /u01/app/oracle/oradata/ORA11GR2/

[oracle@wang ORA11GR2]$ ls con*

control02.ctl

[oracle@wang ORA11GR2]$ cp control02.ctl control01.ctl

[oracle@wang ORA11GR2]$ ls con*

control01.ctl  control02.ctl

[oracle@wang ORA11GR2]$ exit

exit

 

5) 再次啟動資料庫,一切正常,輕鬆愉快的解決了丟失控制檔案的問題。

SQL> startup

ORACLE instance started.

 

Total System Global Area  830930944 bytes

Fixed Size                  2257800 bytes

Variable Size             503319672 bytes

Database Buffers          322961408 bytes

Redo Buffers                2392064 bytes

Database mounted.

Database opened.

SQL>  select status  from v$instance;

 

STATUS

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

OPEN

 

6) 小結:
丟失一個控制檔案是一個非常好解決的問題,只要我們知道原理(控制檔案是互為映象的),就很好解
決這個問題,透過實驗我們還要知道,控制檔案的重要性(號稱 oracle 資料庫的大腦,記錄這整個資料
庫的結構資訊),一定不要出現單點情況

 

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

相關文章