這個東西是自己腦袋發熱想出了來的,自己實驗了一下也確實如此,本身技術含量不高,不過如果突然數據庫無法啟動了,還真讓人有些摸不著頭腦,後來到網上搜索了一下,也確實有人提問過這樣的錯誤.
下面就來重現一下我的想法:
先看啟動信息
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
ORA-00214: ???? ‘C:\ORACLE\ORADATA\DB39\CONTROL01.CTL’ ?? 262 ???
‘C:\ORACLE\ORADATA\DB39\CONTROL04.CTL’ ?? 259 ???
僅從提示信息可以看到似乎是控制文件的錯誤,那究竟是怎麼產生的呢?下面我就制造這樣一個錯誤大家看看.
出現錯誤的原因:
關閉數據庫添加了(復制粘貼)一個控制文件CONTROL04.CTL,
采用服務器端初始化參數文件啟動數據庫,此時數據庫仍然以為是有3個控制文件,使用show parameter control_files;也可以看到是三個控制文件,
此時使用alter system set control_files=’..此處省略..’修改了數據庫,將CONTROL04.CTL添加上了(嚴重錯誤:先創建文件後該的參數),也就是說此時系統認為已經有四個控制文件了。
關閉數據庫,采用服務器端初始化參數文件啟動數據庫,此時基本就會提示上面的錯誤,原因就是第四個參數文件已經與前面的不一樣了。
修改方法很簡單,刪除第四個控制文件,將前三個中的任意一個復制一份改為第四個的名字,關閉數據庫,啟動數據庫,OK.