標籤:重做日誌 伺服器 初始 兩種 不同 導致 section 第一個 bdd
oracle資料庫控制檔案是非常重要的檔案,它是資料庫建立的時候自動產生的二進位檔案,其中記錄了資料庫的狀態資訊,主要包括以下內容
? 資料庫的名稱,一個控制檔案只能屬於一個資料庫
? 資料庫建立時間
? 資料檔案的名稱、位置、聯機、離線狀態資訊
? 重做記錄檔的名稱、位置及歸檔資訊
? 所有資料表空間資訊
? 當前記錄序號
? 最近檢查點資訊
控制檔案在資料庫啟動的Mount階段被讀取,在資料庫啟動時首先使用預設規則找到並開啟參數檔案,在參數檔案中含有控制檔案的位置資訊,開啟控制檔案後,會通過控制檔案中記錄的各種資料庫檔案的位置開啟資料庫,從而啟動資料庫到可用狀態。當成功啟動資料庫後,在資料庫的運行過程中,資料庫伺服器可以不斷的修改控制檔案中的內容,所以在資料庫被開啟的階段,控制檔案必須是可讀寫的。但是其他任何使用者都無法修改控制檔案,只有資料庫的執行個體才可以修改控制檔案中的資訊。
查看控制檔案資訊,可以從V$controlfile視圖中查看控制檔案資訊,控制檔案名稱
除了從V$controlfile視圖查看控制檔案資訊外,還可以從V$parameter視圖中查看
如何查看控制檔案中所存的內容資訊
可以使用V$controlfile_record_section
查看V$controlfile_record_section中type,record_size,records_total,records_used
從當中可可以看到控制檔案中存放了建立資料庫的資訊、重做日誌資訊、資料檔案及歸檔記錄檔記錄等資訊。這些有價值的資訊用於資料維護和管理,很多資料字典視圖是從控制檔案中獲得的資訊。
儲存多重控制檔案
由於控制檔案非常重要,所以要求控制檔案不能只有一個,通常資料庫中控制檔案要多於3個,並且存放在不同的磁碟上,這種使用控制檔案的方法也稱為控制檔案的多工。實現多重的一個方法就是通過複製控制檔案到多個位置並修改初始化參數檔案中的CONTROL_FILES參數,使之包含所有控制檔案名稱。需要注意,當存在多個控制檔案時,oracle會同時更新所有的控制檔案,但是僅對CONTROL_FILES中所列舉的第一個控制檔案進行讀取操作。
舉例說明實現多工控制檔案的方法:
資料庫狀態為開啟狀態,修改SPFILE中的CONTROL_FILES參數
關閉資料庫
使用作業系統命令將檔案複製到新的位置
重新啟動執行個體
備份控制檔案
備份控制檔案
為了確保資料庫的安全,在資料檔案或記錄檔位置資訊發生變化時,例如新增資料檔案到資料表空間時,對控制檔案進行備份。有兩種備份方式:備份為二進位檔案和備份為指令檔
舉例說明備份為二進位檔案的方法:
備份控制檔案之前先查看當前系統中存在幾個控制檔案
備份控制檔案
修改系統參數檔案
關閉資料庫之後啟動資料庫之後報ORA-00214錯誤,原因是控制檔案版本不一致導致的
control01.ctl控制檔案版本是817, control02.ctl的版本是806.
使用control01.ctl覆蓋control03.ctl,使得控制檔案版本保持一致即可。
關閉資料庫
在重新啟動資料庫就可以了
恢複控制檔案
假設CONTROLD_FILES所指定的控制檔案已經損壞,但在資料字典中還能存取控制檔案,則可以採用下面的步驟進行恢複:
關閉資料庫執行個體
刪除控制檔案
啟動資料庫
此時資料庫的狀態是
用作業系統將完好的控制檔案覆蓋掉損壞的控制檔案
關閉當前資料庫
重新啟動資料庫執行個體
如果對此文有什麼問題的話,請加下面一起探討
Oracle 11g 管理控制檔案