oracle資料庫通過控制檔案保持資料庫的完整性,一旦控制檔案被破壞資料庫將無法啟動,因此建議採用多路控制檔案或者備份控制檔案的方法。
控制檔案是資料庫建立的時候自動生成的二進位制檔案,只能通過例項進行修改,如果手動修改的話會造成控制檔案與物理資訊不符合,從而導致資料庫不能正常工作。
oracle資料庫通過控制檔案保持資料庫的完整性,一旦控制檔案被破壞資料庫將無法啟動,因此建議採用多路控制檔案或者備份控制檔案的方法。
控制檔案是資料庫建立的時候自動生成的二進位制檔案,只能通過例項進行修改,如果手動修改的話會造成控制檔案與物理資訊不符合,從而導致資料庫不能正常工作。
控制檔案主要包括下面內容:
1.控制檔案所屬資料庫的名字,乙個控制檔案只能屬乙個資料庫
2.資料庫建立時間
3.資料檔案的名稱,位置,聯機,離線狀態資訊
4.所有表空間資訊
5.當前日誌序列號
6.最近檢查點資訊
其中,資料庫名稱,標識和建立時間在資料庫建立時寫入;資料檔案和重做日誌名稱和位置在增加,重新命名或者刪除的時候更新;表空間資訊在增加或者刪除表空間的時候進行更新。
在初始化引數檔案中control_files引數主要來描述控制檔案的檔名跟物理路徑,如下所示:
control_files=("d:oracleoradataoradbcontrol01.ctl")
該引數只設定乙個,也可以設定多個,如下所示:
control_files=("d:oracleoradataoradbcontrol01.ctl"
"e:oracleoradataoradbcontrol02.ctl",
"f:oracleoradataoradbcontrol03.ctl")
這個方法叫做多路控制檔案,oracle可以利用這個方法恢復被破壞的控制檔案,oracle最多允許設定8個多路控制檔案。
必須所有的多路控制檔案都完整正確資料庫才能正常啟動,只要丟失乙個或者乙個內容不正確資料庫就不能順利啟動。
建立多路控制檔案
利用spfile檔案建立多路控制檔案
1.利用sys帳號登陸sql*plus,查詢一下控制檔案資訊檢視
sql>select name from v$controlfile;
結果顯示為:
name
----------------------------------
d:oracleoradataoradb01control01.ctl
e:oracleoradataoradb01control02.ctl
f:oracleoradataoradb01control03.ctl
這裡列出了控制檔案的名稱以及位置
2.更改spfile中控制檔案的資訊,增加乙個新的控制檔案
sql>alter system set control_files=
'd:oracleoradataoradb01control01.ctl',
'e:oracleoradataoradb01control02.ctl',
'f:oracleoradataoradb01control03.ctl',
'g:oracleoradataoradb01control04.ctl'
scope=spfile
結果顯示為:
系統已經更改。
3.關閉資料庫
4.在作業系統中將已有的控制檔案複製,修改名稱儲存到剛才增加控制檔案的指定位置。(這步必須做的,否則資料庫無法啟動)
5.重新啟動控制檔案,使控制檔案改變生效。
利用pfile建立多路控制檔案
1.利用sys使用者登陸sql*plus,關閉資料庫
2.在作業系統中將原有的控制檔案複製乙份儲存到不同的位置上去,比如說將原有的'd:oracleoradataoradb01control01.ctl'控制檔案複製乙份儲存到g盤的oracleoradata目錄下去。
3.用文字編輯器開啟pfile進行編輯,一般是在oracle_baseadminpfile裡面,把新新增的控制檔案資訊新增進去。
4.重新啟動資料庫,使控制檔案生效。
注意在9i中,預設的控制檔案是spfile,所以修改了pfile以後啟動要:
sql>startup pfile=oracle_baseadminpfileinit.ora
管理控制檔案
備份控制檔案
1.命令:alter database backup controlfile to '........bkp';
命令給出的路徑一定要實現就建好,否則系統會報錯。控制檔案丟失或者出錯的時候就可以在初始化引數檔案中把control_files引數指向備份後的路徑,或者是把備份後的控制檔案複製到原來的控制檔案的位置覆蓋掉。
2.使用命令:alter database backup controlfile to trace;
在oracle_baseadminudump裡面生成跟蹤檔案(使用show parameter user_dump語句可以可以獲取跟蹤檔案存放目錄),其中就有建立檔案的sql指令碼,可以利用指令碼來重建新的控制檔案。
問題:1.把備份的檔案放到原有的控制檔案的位置還是不能用。
2.要怎樣利用指令碼重建新的控制檔案?
刪除控制檔案(刪除某一路的控制檔案)
spfile檔案
1.利用sys帳號登陸sql*plus,查詢一下控制檔案資訊檢視
sql>select name from v$controlfile;
結果顯示為:
name
----------------------------------
d:oracleoradataoradb01control01.ctl
e:oracleoradataoradb01control02.ctl
f:oracleoradataoradb01control03.ctl
g:oracleoradataoradb01control04.ctl
這裡列出了控制檔案的名稱以及位置
2.更改spfile中控制檔案的資訊,刪除乙個新的控制檔案
sql>alter system set control_files=
'd:oracleoradataoradb01control01.ctl',
'e:oracleoradataoradb01control02.ctl',
'f:oracleoradataoradb01control03.ctl',
scope=spfile
結果顯示為:
系統已經更改。
3.關閉資料庫
4.在作業系統中刪除控制檔案
5.重新啟動資料庫,使控制檔案生效
pfile檔案
1.利用sys使用者登陸sql*plus,關閉資料庫
2.用文字編輯器開啟pfile進行編輯,一般是在oracle_baseadminpfile裡面,找到control_files引數把不需要的控制檔案刪除。
3.在作業系統中刪除該控制檔案。
4.重新啟動資料庫,使控制檔案生效。
oracle管理控制檔案
檢視資料庫資訊 select from v database 檢視日誌檔案 select from v logfile 檢視那日誌組 select from v log 檢視備份資訊及修改備份狀態 select from v backup alter tablespace users begin b...
管理oracle控制檔案
每乙個oracle資料庫都有乙個控制檔案。控制檔案是乙個小型的二進位制檔案,可以記錄資料庫的物理結構,包含以下的內容 資料庫名稱 相關資料檔案和聯機重做日誌檔案的名稱和位置 資料庫建立的時標 當前日誌的序號 檢驗點資訊。無論何時開啟資料庫,控制檔案必須能夠由oracle資料庫伺服器寫入內容。沒有控制...
ORACLE 管理控制檔案
在oracle中,控制檔案極其重要,如果該檔案損壞並在沒有備份的情況下,資料庫將無法啟動,裡面的資料也將無法讀取恢復,一般情況下,對資料庫配置好了以後備份控制檔案 1.檢視控制檔案 sql select name from v controlfile 如果發生錯誤,檢查錯誤資訊如 opt oracl...