1. 程式人生 > >oracle添加控制文件,ORA-00214: 錯誤

oracle添加控制文件,ORA-00214: 錯誤

指定 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;

關閉數據庫

SHUTDOWN
IMMEDIATE

重啟數據庫

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: 錯誤