故障現象:
今日學習oracle控制文件移動和修改,發現本機安裝oracle數據庫啟動時只使用了一個控制文件。
如下:SQL> select * from V$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------- --- ---------- --------------
/opt/oracle/oradata/ NO 16384 450
orcl/control02.ctl
1、決定將控制文件01和03加入進去,於是執行命令那個如下:
SQL> alter system set control_files = '/opt/oracle/oradata/orcl/control01.ctl',
2 '/opt/oracle/oradata/orcl/control02.ctl',
3 '/opt/oracle/oradata/orcl/control03.ctl' SCOPE=SPFILE;
System altered.
2、關閉數據庫 SQL> shutdown immediate;
3、再次啟動數據庫,數據無法啟動,報錯ORA-00214如下:
SQL> startup
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 1219160 bytes
Variable Size 318768552 bytes
Database Buffers 922746880 bytes
Redo Buffers 15556608 bytes
ORA-00214: control file '/opt/oracle/oradata/orcl/control02.ctl' version 599
inconsistent with file '/opt/oracle/oradata/orcl/control01.ctl' version 541
故障分析
1、根據錯誤提示為控制文件版本不一致導致。控制文件原理為維護數據庫的當前物理狀態,為二進制的文件,數據庫打開的時候控制文件一致變化。主要記錄數據庫名字、標示、當前日志SCN、表空間信息等。理論上3個控制文件應該一致。
2、因為版本不一致,且控制文件2版本最新為version 599.
故障解決
1、在操作系統上,備份所有控制文件,同時使用控制文件control02.ctl覆蓋重命名control01.ctl、control03.ctl,保證版本一致。
2、操作后,數據庫啟動正常,可以使用,問題解決。
