控制檔案概述

edwardking888發表於2010-07-08

資料庫控制檔案(control file)是一個二進位制檔案,供資料庫啟動及正常工作
時使用。在資料庫執行過程中,控制檔案會頻繁地被Oracle修改,因此資料
庫處於開啟(open)狀態時控制檔案必須可寫。如果控制檔案因故不能訪
問,資料庫 也將無法正常工作。

每個控制檔案(control file)只能供一個Oracle資料庫使用。

控制檔案的內容

控制檔案(control file)中包含了其所屬資料庫的資訊,例項(instance)在
啟動,及正常工作期間都需要存取這些資訊。控制檔案的內容只能由Oracle
修改,資料庫管理員或使用者都不應編輯控制檔案。

控制檔案(control file)中主要包含以下內容:
● 資料庫名(database name)
● 資料庫建立時的時間戳(timestamp)
● 屬於此資料庫的資料檔案(datafile)及重做日誌檔案(redo log file)的
名稱與儲存位置
● 表空間(tablespace)資訊
● 離線(offline)的資料檔案
● 日誌歷史資訊
● 歸檔日誌(archived log)資訊
● 備份集(backup set)與備份塊(backup piece)資訊
● 資料檔案與重做日誌的備份資訊
● 資料檔案複製資訊
● 當前的日誌序列號(log sequence number)
● 檢查點(checkpoint)資訊

資料庫名(database name)和資料庫建立時間戳(timestamp)都來源於資料
庫建立過程。資料庫名既可以來自 DB_NAME 初始化引數中的設定值,也可
以來自 CREATE DATABASE 語句中的指定值。

每當新增,重新命名,或移除資料庫中的資料檔案(datafile)及重做日誌檔案
(redo log file)時,控制檔案(control file)就會被更新以反映這些資料庫物
理結構變化。進行這些記錄的目的是:
● Oracle可以籍此在資料庫啟動(startup)時識別開啟的資料檔案和重做
日誌檔案
● Oracle可以籍此在恢復資料庫時識別當前可用及需要恢復的檔案

因此,使用者每次更改資料庫的物理結構後(使用 ALTER DATABASE 語
句),一定要及時備份控制檔案(control file)。

控制檔案(control file)還被用於儲存檢查點(checkpoint)資訊。每隔三秒
鍾,檢查點程式(checkpoint process,CKPT)將會在控制檔案中記錄重做日
志(redo log)檢查點位置(checkpoint position)資訊。當資料庫恢復時,重
做日誌中此點之前的重做條目(redo entry)都無需恢復,因為這些資料已經
被寫入資料檔案(datafile)中了。

多重控制檔案

如同重做日誌檔案(redo log file)一樣,Oracle也可以為一個資料庫同時維護
多個完全相同的控制檔案(control file)。通過在不同磁碟上為一個資料庫存
儲多重控制檔案(multiple control file),可以有效地避免控制檔案的單點脆
弱性(single point of failure)。當一個包含控制檔案的磁碟發生故障時,如果
Oracle試圖訪問這個控制檔案就會導致當前的例項(instance)出現故障。但
如果其他磁碟中存在此控制檔案的備份,例項可以被立即重新啟動而無需進
行資料庫恢復。

如果一個資料庫的所有控制檔案永久丟失了,那麼例項將中止且需要進行介
質恢復(media recovery)。如果沒有當前控制檔案(control file)的副本而必
須使用較早的備份,那麼介質恢復過程將會比較複雜。因此Oracle強烈建議
使用者遵循以下規則:
● 在每個資料庫中使用多重控制檔案(multiple control file)
● 將控制檔案的副本儲存在不同的物理磁碟上
● 使用作業系統的映象功能(operating system mirroring)
● 監控備份工作

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-667576/,如需轉載,請註明出處,否則將追究法律責任。

相關文章