Oracle 控制檔案

2022-02-17 22:23:04 字數 2220 閱讀 9043

oracle 控制檔案呢,是資料庫中最小的檔案,是乙個二進位制檔案,其中包括了資料庫的結構資訊,

同時也包括了資料檔案和日誌檔案的一些資訊,控制檔案雖小,但可以說是 oracle 中最重要的檔案,

只有 oracle 程序才能夠更新控制檔案中的內容,如過沒有控制檔案,資料庫將無法啟動。它就像oracle 例程 和 資料庫 的橋梁。

控制檔案中呢主要包括:資料庫名稱,位置,聯機或者離線狀態,redo log file 的位置和名稱,

表空間名稱, archive log file 資訊,checkpoint 資訊,undo 資訊,rman 資訊等等,

從上面對控制檔案中包含的內容也可以看出控制檔案在整個 oracle 中的重要性。

控制檔案的多路復用技術

何為控制檔案的多路復用技術呢?

由於控制檔案的重要性,oracle 呢官方是建議至少應該擁有控制檔案的三個以上的副本,

而您可以通過多路復用技術,將控制檔案的副本建立到不同的磁碟上,

然後再修改初始化引數檔案 init . ora

(現在的 oracle 版本中的引數基本上都是使用二進位制的 spfile,只有個老版本的 oracle 才使用 init.ora 檔案)

中的 control_files 引數,使之包含所有的控制檔案,

也就是將其他磁碟上的控制檔案也包含到這個 control_files 中,這樣的話,

這樣呢,有乙個好處,

就是你的這個乙個磁碟壞了,oracle 仍然能夠快速的恢復,

乙個控制檔案損壞了,還可以自動使用另乙個控制檔案,

但是這裡要提一點的是,控制檔案並不是越多越好的,

因為當 oracle 更新控制檔案時,會將所有的控制檔案全部進行更新,自然效能就有一定的影響了,

所以,控制檔案的副本也不是越多越好的!!!

下面呢就介紹一下如何啟用多路復用的技術了,

主要是針對於使用 spfile (system parameter file)實現多路復用控制檔案

(對於 init . ora 實質上也差不多)

首先來檢視一下當前使用的控制檔案

上面的截圖中可以看出當前的 oracle 例項上有三個控制檔案,

也就是由三路復用吧(亂取的),

下面呢,我還加乙個控制檔案,並且把控制檔案移到其他的目錄(以其他的目錄來虛擬乙個磁碟)

第一步呢,修改 spfile 中的 control_files 這個屬性,為其增加兩個控制檔案資訊,

乙個存放於虛擬磁碟 disk1 下,乙個存放於虛擬磁碟 disk2 下

下面呢就是要關閉資料庫了,至於為什麼要關閉資料庫,在後面有說明的,

下面呢,就是 ctl + c 了,也就是把控制檔案複製到指定的目錄上,

上面指定的是 disk1 和 disk2 ,所以在這裡呢,就是簡單的 ctl + c 操作了

完成了之後呢,就重新啟動 oracle 了

下面呢,就再使用 v$controlfile 來驗證上面的操作是否成功了,

從上面呢,就可以看出操作確實是成功了!!!

現在來解釋為什麼需要關閉 oracle ?

那麼這個 oracle 上有可能還掛著很多的使用者或者是應用程式,

這些使用者的操作有可能是會改變控制檔案的,如果您不關閉 oracle 就拷貝控制檔案,

那麼將會造成控制檔案不一致的情況,即控制檔案1中的資料內容和控制檔案2中的不一致,

這將是乙個很嚴重的問題!!!

oracle控制檔案

nomount時可以用show parameter control files檢視。而此時yon用select from v controlfile則沒有任何資訊。nomount狀態只是通過引數檔案來找到控制檔案。進入mount後可以用select from v controlfile檢視。控制檔案...

oracle控制檔案

控制檔案是乙個比較小的二進位制檔案,記錄了物理資料庫的當前狀態 每乙個控制檔案只屬於乙個資料庫,資料庫可以有多個控制檔案 處於安全考慮,一般多幾個就相當於多了幾個備份 但是乙個控制檔案不能對應多個資料庫 資料庫處於開啟狀態,伺服器會隨時修改控制檔案的內容 任何使用者都不能修改控制檔案的資料。獲取控制...

oracle 控制檔案

1.控制檔案的位置 select name from v controlfile 2.控制檔案的格式為trl二進位制檔案 3.建立乙個控制檔案 1 獲取資料檔案和重做日誌檔案列表 控制檔案 select name from v datafile 日誌檔案 select member from v l...