[zz]在Oracle中實現控制檔案多工

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

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

  一、控制檔案多工特點。

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

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

二、在Windows平台上如何?控制檔案多工。  如所示,就是筆者採用了多工後的結果。
  
  本來Oracle資料庫有三個控制檔案,分別儲存在同一目錄中。筆者現在在另一個硬碟分區上放置了一個控制檔案,實現了多工。如此的話,即使前面兩個控制檔案損壞了,那麼資料庫也會立即啟用第三個控制檔案來啟動資料庫。在Windows作業系統下要實現多工控制檔案是比較簡單的,只需要通過幾個簡單的步驟就可以完成。
  第一步:修改系統參數control_files。在Oracle資料庫系統中,是通過這個初始化參數來開啟控制檔案的。即這個初始化參數中指定有多少個控制檔案,分別存放在那裡,到時候資料庫就會更新多少控制檔案。不過需要注意的是,一般資料庫在使用時,只開啟一個控制檔案。所以要啟用多工時,首先需要使用ALTERSYSTEM命令來設定這個初始化參數,以便在管理員指定的位置添加控制檔案。其具體格式為ALTER SYSTEM control_files‘控制檔案1’,’控制檔案2’。需要注意的是,這裡的控制檔案都需要使用絕對路徑。
    第二步:關閉資料庫以及相關服務。這個初始化參數設定以後,還需要關閉資料庫以及相關服務後才能夠進行下一步的操作。所以最好在資料庫投入生產使用之前,就做好控制檔案多工準備。否則後續再進行調整的話,就不得不付出資料庫停機的代價。使用shutdown命令關閉資料庫之後,還需要在作業系統的服務管理視窗中關閉相關的服務。
  第三步:複製控制檔案並改名。為了確保所有控制檔案能夠互為鏡像,完全相同,最好能夠在關閉資料庫的情況下,將原先的控制檔案複製到一個新的位置,然後進行重新命名。注意這裡的位置與控制檔案的名字,必須同第一步指定的路徑與名字相同。
  第四步:重新啟動資料庫與相關的服務。啟動資料庫之後,需要注意手工啟動服務視窗中的相關選項。如果怕麻煩的話,那麼重新啟動一下作業系統,系統會在重新啟動的過程中自動啟用相關的Oracle資料庫服務。資料庫重新啟動之後,多工控制檔案就可以使用了。如果要確認一下原先的設定是否奏效,可以使用所示的查詢語句來進行查詢。當使用ALTER SYSTEM參數更改完初始化參數之後,由於這個控制檔案實際上還並不存在,為此利用這個語句來查詢的時候就查不到更改後的變化。複製控制檔案並重新啟動資料庫系統後,所做的更改生效了。此時才可以通過這個查詢語句尋找到起作用的控制檔案。或者說,如果管理員實際複製了控制檔案,但是在這裡查詢不到相應結果的話,則說明肯定是哪個地方出現了問題。此時系統工程師就要從頭開始來排除故障可能出現的原因。

  三、在實現過程中的注意點。

  顯然,要在Windows作業系統上實現控制檔案多工話,比較簡單。不過在具體的配置過程中,有一些細節方面的內容要引起管理員重視。

  首先,在使用ALTER SYSTEM更改初始化參數的時候,一定要把原先的控制檔案資訊帶上。也就是說,預設情況下Oracle資料庫已經有了三個控制檔案。如果資料庫管理員還還需要在其他硬碟上多採用兩個控制檔案的話,那麼在ALTER SYSTEM語句中必須加入五條資訊。也就是說,原先的控制檔案資訊必須也帶上。如果在這條語句中,資料庫管理員只帶上兩條新控制檔案的語句的話,則資料庫系統會認為原先的三個控制檔案都不要了,而直接採用後面加上的兩個控制檔案來代替。為此筆者提醒各位元據庫管理員,在調整設定的時候千萬不要犯這個低級的錯誤。

  其次需要考慮多工控制檔案的儲存位置。像資料庫的預設設定,控制檔案時儲存在同一個目錄中。這顯然並不是很安全。至少要將控制檔案放置在不同的硬碟上或者分區上。具體來說,控制檔案的每個副本都應該儲存在不同的磁碟機上。也就是說可以將控制檔案的副本儲存在每個儲存有重做日至檔案組群組成員的硬碟上。不過有一點需要說明的是,最好不要將控制檔案的副本儲存在網路主機上。這主要是因為系統會同時更新多個資料庫控制檔案。如果網路比較繁忙時,更新網路主機上的控制可能會花費比較多的時間。可見,這個位置的選擇不僅關係到控制檔案的更新速度,而且還關係到控制檔案副本的安全性。為此在規劃資料庫的時候,也需要好好想想這個控制檔案副本該存放在哪個地方合適。

  第三需要注意的是,這個控制檔案的預設儲存位置在不同的作業系統中是不同的。如在Linux作業系統與Windows作業系統中,雖然預設情況下都是三個控制檔案,其中連個為控制檔案的副本。但是他們儲存的路徑不同。為此如果要在不同的作業系統上複製控制檔案時,就需要通過上面的查詢語句來查詢當前生效的控制檔案。千萬不要憑感覺去找。因為即使你找到了控制檔案,也不能夠保證這個控制檔案是否有效,是否包含了最新的內容。如果不是的話,則無法保證所有的控制檔案都相同,無法確保所有控制檔案能夠互為鏡像。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.