您好,登錄后才能下訂單哦!
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所指定的控制文件已經損壞,但在數據字典中還能訪問控制文件,則可以采用下面的步驟進行恢復:
關閉數據庫實例
刪除控制文件
啟動數據庫
此時數據庫的狀態是
用操作系統將完好的控制文件覆蓋掉損壞的控制文件
關閉當前數據庫
重新啟動數據庫實例
如果對此文有什么問題的話,請加下面微信一起探討
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。