標籤:system 技術分享 管理 更改 control 重啟 錯誤 ora logs
控制檔案是一個很小的二進位檔案(10MB左右),含有資料庫結構資訊,包括資料檔案和記錄檔資訊。控制檔案在資料庫建立時被自動建立,並在資料庫發生物理變數時更新。控制檔案被不斷更新,在任何時候都要保證控制檔案可用,否則資料庫將無法啟動或者使用。
1 控制檔案包含的主要資訊如下:
資料庫名稱和SID標識;
資料檔案和記錄檔列表;
資料庫建立的時間戳記;
資料表空間資訊;
當前重做記錄檔序號;
歸檔日誌資訊;
檢查點資訊;
復原段的起始與結束;
備份資料檔案資訊;
控制檔案包含了如此多的重要訊息,需要保護並及時備份控制檔案,以便它被損壞或者磁碟介質損貨時,能夠及時恢複。目前保護控制檔案的主要策略為多工控制檔案與備份控制檔案。
2 查看目前系統的控制檔案資訊,主要是查看相關的字典視圖
v$controlfile 包含所有控制檔案的名稱和狀態資訊
v$controlfile_record_section 包含控制檔案中各個記錄文檔段的資訊
v$parameter 包含了系統所有初始化參數,可以查詢到control_files的資訊
3 控制檔案的多工
為了提高資料庫的安全性,至少要為資料庫建立兩個控制檔案,而且這兩個檔案最好分別放在不同的磁碟中,這樣可以避免產生由於某個磁碟故障而無法啟動資料庫的危險,該管理原則稱為多工控制檔案。當多工控制檔案某個磁碟發生故障導致其包含的控制檔案損壞,資料庫將被關閉或者發生異常,此時可以用另一磁碟中儲存的控制檔案來恢複被損壞的控制位檔案,然後再重啟資料庫,達到保護控制檔案的目的。
資料庫建立時,一般會預設建立兩個控制檔案,我們可以手動的再建立多個控制檔案且不要與預設的放在同一個磁碟中,首先我們可以修改control_files參數來增加控制檔案。
3.1 更改CONTROL_FILES
alter system set control_files = ‘/usr/oracle/app/oradata/orcl/control01.ctl‘,‘/usr/oracle/app/flash_recovery_area/orcl/control02.ctl‘,‘/home/oracle/ControlFiles/control03.ctl‘,‘/home/oracle/ControlFiles/control04.ctl‘
scope=spfile;
上面的代碼中,前3個控制檔案已經建立好,第4個檔案是使用者將要手動添加的,但是目前還沒有建立該檔案,建立該檔案前需要關閉資料庫,然後將第1個複製過去即可;
3.2 複製控制檔案
其實添加控制檔案就是將之前可用的控制檔案複製過去,重新命名即可,首先我們需要關閉資料庫,然後將/usr/oracle/app/oradata/orcl/control01.ctl 複製為/home/oracle/ControlFiles/control04.ctl即可
複製完之後,再重啟資料庫,重啟之後查詢v$control_files;
到此我們控制檔案多工操作完成,過程中需要注意的就是,必須先關閉資料庫才能把可用的控制檔案複製過去,如果沒有關閉就複製過去,在重啟的時候會報錯原控制檔案與新增的不一致的錯誤:
ORA-00214: control file ‘/usr/oracle/app/oradata/orcl/control01.ctl‘ version
7136 inconsistent with file ‘/home/oracle/ControlFiles/control04.ctl‘ version
7133
Oracle 控制檔案管理