1. 程式人生 > >Oracle控制檔案

Oracle控制檔案

轉載網站:Oracle技術圈

轉載地址:https://www.oraclejsq.com/oraclegl/010300654.html

Oracle控制檔案

Oracle控制檔案是Oracle資料庫儲存資訊的重要檔案,它是一個二進位制檔案,控制檔案主要用來存放資料庫名字、資料檔案位置等資訊的檔案。Oracle控制檔案是至關重要的,沒有了它,資料庫就不能啟動。

每一個數據庫都有一個Oracle控制檔案,而且每一個控制檔案只屬於一個數據庫,不能拿來共用。控制檔案在資料庫建立時跟著一起建立,控制檔案不能手動修改,Oracle資料庫自己獨立管理。

那控制檔案的狀態和存放位置是如何的呢?我們可以根據資料字典V$controlfile進行查詢,查詢結果如下:

通過查詢結果,可以看出控制檔案的副檔名是.ctl檔案。每一個控制檔案都記錄著Oracle資料庫的建立時間、名稱、資料檔案的名字、資料檔案的位置、日誌檔案的名字及位置、表空間、備份、最近檢查點等資訊。因此在對資料庫進行相應的操作時,比如增加資料檔案時,就會更新對應的控制檔案資訊,而不是手動進行修改。

控制檔案多路複用

既然控制檔案這麼重要,我們該如何對它進行保護呢?Oracle資料庫提供了多路複用機制對控制檔案進行保護。多路複用就是把控制檔案進行復制建立在不同磁碟上,這樣子可以防止一個磁碟在損壞的情況下,可以從其它磁碟上進行恢復。保證Oracle資料庫的安全性。

可以使用init.ora檔案對控制檔案進行多路複用,init.ora是Oracle資料庫初始化檔案,它也是Oracle建立時,就自動建立的一個檔案,它裡面包含了控制檔案的位置資訊,init.ora檔案在Oracle資料庫安裝目錄下dbs檔案下。

在修改init.ora之前可以對Oracle控制檔案進行備份,然後再修改init.ora檔案中control_files引數。步驟如下:

1、檢視引數檔案spfile位置,把引數檔案轉換為可以編輯檔案pfile

--檢視引數檔案spfile位置
show parameter spfile;
--建立pfile
create pfile from spfile;

2、關閉資料庫。

3、對控制檔案進行備份,然後對pfile檔案進行修改,把contol_files引數新增上備份的控制檔案。

4、再建立spfile檔案,然後重啟資料庫。

create spfile from pfile;

通過查詢控制檔案V$controlfile可以查詢正好有兩個控制檔案,和init.ora檔案中兩個控制檔案一一對應。因此可以通過備份控制檔案,然後通過init.ora檔案對控制檔案進行多路複用,從而起到保護Oracle資料庫的作用。