oracle數據庫控制文件是非常重要的文件,它是數據庫創(chuàng)建的時候自動生成的二進制文件,其中記錄了數據庫的狀態(tài)信息,主要包括以下內容
創(chuàng)新互聯公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網站建設公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務,在本地打下了良好的口碑,在過去的10余年時間我們累計服務了上千家以及全國政企客戶,如履帶攪拌車等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質量監(jiān)控加上過硬的技術實力獲得客戶的一致贊譽。
? 數據庫的名稱,一個控制文件只能屬于一個數據庫
? 數據庫創(chuàng)建時間
? 數據文件的名稱、位置、聯機、脫機狀態(tài)信息
? 重做日志文件的名稱、位置及歸檔信息
? 所有表空間信息
? 當前日志序列號
? 最近檢查點信息
控制文件在數據庫啟動的Mount階段被讀取,在數據庫啟動時首先使用默認規(guī)則找到并打開參數文件,在參數文件中含有控制文件的位置信息,打開控制文件后,會通過控制文件中記錄的各種數據庫文件的位置打開數據庫,從而啟動數據庫到可用狀態(tài)。當成功啟動數據庫后,在數據庫的運行過程中,數據庫服務器可以不斷的修改控制文件中的內容,所以在數據庫被打開的階段,控制文件必須是可讀寫的。但是其他任何用戶都無法修改控制文件,只有數據庫的實例才可以修改控制文件中的信息。
查看控制文件信息,可以從V$controlfile視圖中查看控制文件信息,控制文件名稱
除了從V$controlfile視圖查看控制文件信息外,還可以從V$parameter視圖中查看
如何查看控制文件中所存的內容信息
可以使用V$controlfile_record_section
查看V$controlfile_record_section中type,record_size,records_total,records_used
從截圖當中可可以看到控制文件中存放了創(chuàng)建數據庫的信息、重做日志信息、數據文件及歸檔日志文件記錄等信息。這些有價值的信息用于數據維護和管理,很多數據字典視圖是從控制文件中獲得的信息。
存儲多重控制文件
由于控制文件非常重要,所以要求控制文件不能只有一個,通常數據庫中控制文件要多于3個,并且存放在不同的磁盤上,這種使用控制文件的方法也稱為控制文件的多路復用。實現多重的一個方法就是通過復制控制文件到多個位置并修改初始化參數文件中的CONTROL_FILES參數,使之包含所有控制文件名稱。需要注意,當存在多個控制文件時,oracle會同時更新所有的控制文件,但是僅對CONTROL_FILES中所列舉的第一個控制文件進行讀取操作。
舉例說明實現多路復用控制文件的方法:
數據庫狀態(tài)為打開狀態(tài),修改SPFILE中的CONTROL_FILES參數
關閉數據庫
使用操作系統(tǒng)命令將文件復制到新的位置
重新啟動實例
備份控制文件
備份控制文件
為了確保數據庫的安全,在數據文件或日志文件位置信息發(fā)生變化時,例如新增數據文件到表空間時,對控制文件進行備份。有兩種備份方式:備份為二進制文件和備份為腳本文件
舉例說明備份為二進制文件的方法:
備份控制文件之前先查看當前系統(tǒng)中存在幾個控制文件
備份控制文件
修改系統(tǒng)參數文件
關閉數據庫之后啟動數據庫之后報ORA-00214錯誤,原因是控制文件版本不一致導致的
control01.ctl控制文件版本是817, control02.ctl的版本是806.
使用control01.ctl覆蓋control03.ctl,使得控制文件版本保持一致即可。
關閉數據庫
在重新啟動數據庫就可以了
恢復控制文件
假設CONTROLD_FILES所指定的控制文件已經損壞,但在數據字典中還能訪問控制文件,則可以采用下面的步驟進行恢復:
關閉數據庫實例
刪除控制文件
啟動數據庫
此時數據庫的狀態(tài)是
用操作系統(tǒng)將完好的控制文件覆蓋掉損壞的控制文件
關閉當前數據庫
重新啟動數據庫實例
如果對此文有什么問題的話,請加下面微信一起探討