oracle控制檔案管理

2021-05-17 23:30:55 字數 3454 閱讀 7798

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...