常見問題--控制檔案

oracle_db發表於2009-07-06

控制檔案概述:

1.基本含義

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

2.包括內容:

控制檔案(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)中了。

參考:oracle connecptes

 

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

相關文章