控制檔案的多路復用技術

2021-09-08 15:07:21 字數 1542 閱讀 5727

在windows作業系統中,如果登錄檔檔案被損壞了,就會影響作業系統的穩定性。嚴重的話,會導致作業系統無法正常啟動。而控制檔案對於oracle資料庫來說,其作用就好象是登錄檔一樣的重要。如果控制檔案出現了意外的損壞,那麼此時oracle資料庫系統很可能無法正常啟動。為此作為oracle資料庫管理員,務必要保證控制檔案的安全。

在實際工作中,資料庫管理員可以通過備份控制檔案來提高控制檔案的安全性。但是筆者認為這是下下之策。因為當控制檔案出現損壞時,通過備份檔案來恢復的話,會出現資料庫在一段時間內的停機。為此筆者建議各位資料庫管理員最好還是採用多路復用來保障控制檔案的安全。在採用多路復用的情況下,當某個控制檔案出現損壞時,系統會自動啟用另外乙個沒有問題的控制檔案來啟動資料庫。所以說不會出現停機的狀況。

一、控制檔案多路復用的特點。

多路復用的原理其實很簡單,就是在資料庫伺服器上將控制檔案存放在多個磁碟分割槽或者多塊硬碟上。資料庫系統在需要更新控制檔案的時候,就會自動同時更新多個控制檔案。如此的話,當其中乙個控制檔案出現損壞時,系統會自動啟用另外的控制檔案。只有當資料庫管理員運氣比較背的時候,即所有控制檔案都出現損壞,此時資料庫就無法正常啟動了。不過只要將控制檔案多路復用在多塊硬碟上,一般來說控制檔案一起損壞的紀律很小。所以採用多路復用控制檔案可以在很大程度上提高控制檔案的安全性。最重要的是,在控制檔案轉換的過程之中,不會有停機現象的產生。

所以通過把控制檔案存放在不同的硬碟上,資料庫管理員就能夠避免資料庫出現單點故障的風險。當採用多路復用技術啟用多個控制檔案時,資料庫在更新控制檔案時會同時更新這些控制檔案。雖然有時候這可能會讓資料庫對控制檔案的修改花費更多的時間,但是相對於風險來說,這點時間上的投資還是值得的。再說只要硬碟的效能比較好,那麼這個時間的影響是很少的,甚至可以忽略不計。不過在採用多路復用的時候,最好不要將控制檔案防止在網路上的伺服器中。有時候如果系統在更新控制檔案時剛好碰到網路效能不好甚至網路中斷的情況下,那麼這個控制檔案的更新就需要耗用比較長的時間。如在windows作業系統下安裝oracle資料庫的話,其預設情況下就啟用了多路復用技術。不過這個多路復用技術不怎麼合理。其將其餘的兩個控制檔案副本儲存在同乙個分割槽的同乙個目錄下。萬一這台伺服器的硬碟出現了故障,由於控制檔案儲存在同乙個硬碟中,為此多路復用就失去了意義。為此最好將控制檔案儲存在不同的硬碟中,以提高控制檔案的安全性。

演示多路復用:

sql> select name from v$controlfile;

sql> startup;

oracle instance started.

total system global area 584568832 bytes

fixed size 2290992 bytes

variable size 461376208 bytes

database buffers 117440512 bytes

redo buffers 3461120 bytes

database mounted.

database opened.

sql> select name from v$controlfile;

I O多路復用技術(multiplexing)

首先,要從你常用的io操作談起,比如read和write,通常io操作都是阻塞i o的,也就是說當你呼叫read時,如果沒有資料收到,那麼執行緒或者程序就會被掛起,直到收到資料。l 這樣,當伺服器需要處理1000個連線的的時候,而且只有很少連線忙碌的,那麼會需要1000個執行緒或程序來處理1000個...

IO多路復用技術詳解

io多路復用 i o是指網路i o,多路指多個tcp連線 即socket或者channel 復用指復用乙個或幾個執行緒。意思說乙個或一組執行緒處理多個tcp連線。最大優勢是減少系統開銷小,不必建立過多的程序 執行緒,也不必維護這些程序 執行緒。io多路復用使用兩個系統呼叫 select poll e...

Linux IO多路復用

一.select 函式 include include include int select int n,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout fd clr int fd,fd set set f...