oracle添加控制文件,ORA-00214: 錯誤
阿新 • • 發佈:2019-02-11
指定 sta shutdown 丟失 bubuko lob admin 今天 size
今天學習oracle添加控制文件,控制文件是一個二進制文件,記錄了物理數據庫的當前狀態,每一個數據文件只屬於一個數據庫,為了防止文件損壞丟失等情況,一個數據庫不止一個控制文件。一個數據庫的控制文件中的內容完全一樣。
利用數據字典v$controlfile查詢數據文件的位置、名字:
select name from v$controlfile;
結果:
NAME -------------------------------------------------------------------------------- H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL01.CTL H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL02.CTL
數據庫有兩個控制文件,放在相同的文件夾下。
接下來在另一個文件夾添加新的控制文件。
此時犯了一個錯誤,將控制文件復制出來,改名contro03.ctl,放在了新的文件夾。
修改SPFILE,指定控制文件的位置和名稱,
alter system set control_files= ‘H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL01.CTL‘, ‘H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL02.CTL‘, ‘H:\oracle\backup\CONTROL03.CTL‘ SCOPE=SPFILE;
關閉數據庫
SHUTDOWNIMMEDIATE
重啟數據庫
STARTUP
這個時候就會報錯了:
Total System Global Area 2550136832 bytes Fixed Size 8922136 bytes Variable Size 838863848 bytes Database Buffers 1694498816 bytes Redo Buffers 7852032 bytes ORA-00214: ???? ‘‘H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL01.CTL‘‘?? 18735 ??? ‘‘H:\ORACLE\BACKUP\CONTROL03.CTL‘‘ ?? 18718 ???
ora-00214錯誤,控制文件版本不一致。
錯誤的原因是,在數據庫打開狀態下,oracle服務器會隨時修改控制文件中的內容。
在之前的操作中是先復制的控制文件,後關閉數據庫,導致復制出來的control03與contorl02、control01的內容不一樣,
此時,復制control01覆蓋掉其他控制文件,關閉數據庫並重啟。
這次就能成功打開數據庫了:
正確的添加控制文件順序
1 )查找控制文件位置和名稱
2)修改SPFILE,設置新的控制文件位置和名稱
3)關閉數據庫
4)復制控制文件到指定位置
5)重啟數據庫
現在驗證一下,再查找一遍數據庫控制文件
select name from v$controlfile;
得到:
可以看出增加了控制文件control03.ctl,與設置的一致。
oracle添加控制文件,ORA-00214: 錯誤