冷備份與熱備份、雙機熱備與容錯

冷備份與熱備份、雙機熱備與容錯
冷備份與熱備份
一、 冷備份
  
  冷備份
發生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。冷備份時將關鍵性文件拷貝到另外的位置的一種說法。對於備份Oracle信息而言,冷備份時最快和最安全的方法。冷備份的優點是:
  
  1、 是非常快速的備份方法(只需拷文件)
  2、 容易歸檔(簡單拷貝即可)
  3、 容易恢復到某個時間點上(只需將文件再拷貝回去)
  4、 能與歸檔方法相結合,做數據庫“最佳狀態”的恢復。
  5、 低度維護,高度安全。
  
  但冷備份也有如下不足:
  
  1、 單獨使用時,只能提供到“某一時間點上”的恢復。
  2、 再實施備份的全過程中,數據庫必須要作備份而不能作其他工作。也就是說,在冷備份過程中,數據庫必須是關閉狀態。
  3、 若磁盤空間有限,只能拷貝到磁帶等其他外部存儲設備上,速度會很慢。
  4、 不能按表或按用戶恢復。
  
  如果可能的話(主要看效率),應將信息備份到磁盤上,然後啓動數據庫(使用戶可以工作)並將備份的信息拷貝到磁帶上(拷貝的同時,數據庫也可以工作)。冷備份中必須拷貝的文件包括:
  
  1、 所有數據文件
  2、 所有控制文件
  3、所有聯機REDO LOG文件
  4、 Init.ora文件(可選)
  
  值得注意的使冷備份必須在數據庫關閉的情況下進行,當數據庫處於打開狀態時,執行數據庫文件系統備份是無效的。
  
  下面是作冷備份的完整例子。
  
  (1) 關閉數據庫
  sqlplus /nolog
  sql>connect /as sysdba
  sql>shutdown normal;
  
  (2) 用拷貝命令備份全部的時間文件、重做日誌文件、控制文件、初始化參數文件
  sql>cp
  
  (3) 重啓Oracle數據庫
  sql>startup
  
  二、 熱備份
  
  熱備份是在數據庫運行的情況下,採用archivelog mode方式備份數據庫的方法。所以,如果你有昨天夜裏的一個冷備份而且又有今天的熱備份文件,在發生問題時,就可以利用這些資料恢復更多的信息。熱備份要求數據庫在Archivelog方式下操作,並需要大量的檔案空間。一旦數據庫運行在archivelog狀態下,就可以做備份了。熱備份的命令文件由三部分組成:
  
  1. 數據文件一個表空間一個表空間的備份。
  
  (1) 設置表空間爲備份狀態
  (2) 備份表空間的數據文件
  (3) 恢復表空間爲正常狀態
  
  2. 備份歸檔log文件
  
  (1) 臨時停止歸檔進程
  (2) log下那些在archive rede log目標目錄中的文件
  (3) 重新啓動archive進程
  (4) 備份歸檔的redo log文件
  
  3. 用alter database bachup controlfile命令來備份控制文件熱備份的優點是:
  
  1. 可在表空間或數據庫文件級備份,備份的時間短。
  2. 備份時數據庫仍可使用。
  3. 可達到秒級恢復(恢復到某一時間點上)。
  4. 可對幾乎所有數據庫實體做恢復
  5. 恢復是快速的,在大多數情況下愛數據庫仍工作時恢復。
  
  熱備份的不足是:
  
  1. 不能出錯,否則後果嚴重
  2. 若熱備份不成功,所得結果不可用於時間點的恢復
  3. 因難於維護,所以要特別仔細小心,不允許“以失敗告終”。



雙機熱備的實現模式
雙機熱備有兩種實現模式,一種是基於共享的存儲設備的方式,另一種是沒有共享的存儲設備的方式,一般稱爲純軟件方式。

 基於存儲共享的雙機熱備是雙機熱備的最標準方案。

 對於這種方式,採用兩臺(或多臺,參見:雙機與集羣的異同)服務器,使用共享的存儲設備(磁盤陣列櫃或存儲區域網SAN)。兩臺服務器可以採用互備、主從、並行等不同的方式。在工作過程中,兩臺服務器將以一個虛擬的IP地址對外提供服務,依工作方式的不同,將服務請求發送給其中一臺服務器承擔。同時,服務器通過心跳線(目前往往採用建立私有網絡的方式)偵測另一臺服務器的工作狀況。當一臺服務器出現故障時,另一臺服務器根據心跳偵測的情況做出判斷,並進行切換,接管服務。對於用戶而言,這一過程是全自動的,在很短時間內完成,從而對業務不會造成影響。由於使用共享的存儲設備,因此兩臺服務器使用的實際上是一樣的數據,由雙機或集羣軟件對其進行管理。

 對於純軟件的方式,則是通過鏡像軟件,將數據可以實時複製到另一臺服務器上,這樣同樣的數據就在兩臺服務器上各存在一份,如果一臺服務器出現故障,可以及時切換到另一臺服務器。

 對於這種方式的深入分析,請參見:純軟件方式的雙機熱備方案深入分析

 純軟件方式還有另外一種情況,即服務器只是提供應用服務,而並不保存數據(比如只進行某些計算,做爲應用服務器使用)。這種情況下同樣也不需要使用共享的存儲設備,而可以直接使用雙機或集羣軟件即可。但這種情況其實與鏡像軟件無關,只不過是標準的雙機熱備的一種小的變化。



雙機容錯的工作原理
   1、雙機容錯的兩種方式
雙機容錯從工作原理上可以分爲共享磁盤陣列櫃方式和擴展鏡像純軟件方式兩種。這兩種方式的共同特點都是圍繞關鍵數據的可靠性,對操作系統、電源、CPU和主機主板進行容錯。

雙機共享磁盤陣列櫃方式是以磁盤陣列櫃爲中心的雙機容錯方神機妙算,磁盤櫃通過SCSI線連接到兩個系統上,並能被兩個系統所訪問。關鍵數據放在共享磁盤櫃中,在正常運行時,控制友在主用系統上,當主用系統發生故障或主用系統檢查到某種故障後,系統控制權就切換到備用主機。主用系統修復後,主備角色互換,雙機系統進入正常工作模式。

雙機擴展鏡像酏軟件方式是純軟件方式的雙機容錯方案,兩個系統之間通過以太網連接,關鍵數據在兩個系統之間呈鏡像存在。在正常運行時,控制權在主用系統上,數據實時地鏡像到備用系統上。當主用系統發生故障或主用系統檢查到某種故障後,系統控制權切換到備用主機。由於採用以太網作爲系統的數據鏈路,主用系統可不干擾備用系統工作,自動脫離並在一個孤立的環境中進行故障的診斷和維修,主用系統修復後,控制權需要切回到主用系統,數據需要從備用系統恢復到主用系統,這個工作在後臺自動完成,應用讀取數據仍從備用系統上進行而不會中斷。數據恢復完成後,雙機系統進入正常工作模式。

以上兩種雙機容錯的方式已經能很好地保證數據可靠,如果在主、備機上各運行一種應用還可實現相互備份。

2.共享磁盤陣列櫃方式的工作原理

使用共享磁盤陣列櫃方式的兩臺(或多臺)服務器的數據同時存放在一個磁盤陣列櫃裏,因此,不需要進行數據複製,只需在其中一臺服務器停機時將此服務器的工作轉移到另外一臺服務器,工作較爲簡單。由於數據存儲在同一磁盤陣列櫃裏,一是磁盤陣列櫃的數據捐贈 壞則數據全部丟失,有單點崩潰的可能性,而且由於服務器與磁盤陣列櫃之間通常使用SCSI線連接,因此受到距離的了限制。

共享磁盤陣列車櫃方式一般由監控系統與切換系統兩部分組成。
(1)       監控系統
A、SCSI偵測。共享磁盤陣列櫃方式內部含有偵測心跳通信線路,偵測結果置於共享磁盤陣列櫃上的一個5MB的小區,用於監控,此小區一般在機櫃邏輯盤的起始段,對於某一臺服務器而言,將偵測信自己人以類似於記錄方式寫在該小區內,其中每一條記錄包括如下內容。
系統對本服務器的監測狀態信息
另一臺服務器是滯看到本服務器狀態信息,同時修改記錄區內容。
B、網絡偵測。當一臺服務器有問題或出現故障時,對等服務器的可調變心跳頻率不斷提高。在最小心跳時間內發現記錄內容沒有更新,即會調用網絡心跳偵測兩次確認系統狀態。當峽谷線心路都判斷系統故障時,共享磁盤陣列櫃方式將故障服務器的交易業務在最小安全切換時間內切換到對等服務器上繼續運行。
C、切換系統
網絡服務器。雙服務器後臺,對於用戶一羰,由監控軟件共享磁盤陣列櫃方式提供一個邏輯的IP地址,如192.192.192.1,任一用戶上網可以直接使用這一地址,當後臺其中一臺服務器出現故障時,另外一臺服務器會自己將其網卡的IP地址替換爲192.192.192.1,這樣,用戶一端的網絡不會因爲一臺服務器出現故障而斷掉。
數據庫服務。當其中一臺服務器出現故障時,另外一臺服務器會自動接管數據庫,同時啓動數據庫和應用程序,使用戶數據庫可以繼續操作,對用戶而言不受影響。
應用系統。當有一臺服務器出現故障時,另外一臺服務器會自動接管各類應用程序,同時啓動應用程序,使用戶可以繼續操作,對用戶而言不受影響。

3、擴展鏡像純軟件方式的工作原理
使用純軟件方式的軟件不需要共享磁盤陣列櫃,它將數據存儲於各自服務器內,通過鏡相引擎將數據進行實時複製。當其中一臺服務器停機時,設定的服務器接管停機服務器的工作。由於數據存儲於不同服務器內,因此避免了單點崩潰的可能性,增加了數據的安全性。服務器之間通過網絡連接,所以服務器之間的連接受距離的限制較小。由於數據存儲在各自己服務器硬盤內,因此服務器之間有應用各不影響,提高了服務器正常使用時的效率。
4、熱備份
熱備份其實是計算機容錯技術的一個概念,是實現計算機系統高可用性的主要方式。熱備份採用磁盤鏡相技術,將運行着的計算機系統數據和應用數據同時保存在不同的硬盤上,鏡像在不同的磁盤上的數據在發生變化時同時刷新,從而保證數據一致性。當系統中的一個硬盤發生故障時,計算機可以使用鏡像數據,避免因系統單點故障(如硬盤故障)導致整個計算機系統無法運行,從而實現計算機系統的高可用性。
現在的計算機系統在系統建設時都普遍採用了熱備份方式,最典型的實現方式是雙機熱備份,即雙機容錯系統。雙機容錯系統在建設時選用兩臺同樣服務器,運行相同的操作系統、應用軟件(如數據庫軟件),兩臺服務器共享一個磁盤陣列,採用磁盤鏡像,將應用數據建立在磁盤陣列車上,實現雙機容錯。其中一臺服務器被指定爲工作機,由它處理當前運行的業務,另一臺爲備份服務器。一旦工作機發生故障,運行的業務請求將被人工(或自動)地切換到備份服務器,使運行着的業務不至於因爲系統的單點故障中斷,實現系統的高可用性。
   熱備份實現了計算機系統的高可用性,使一些對實時性要求很強的業務(如銀行信用卡業務)得以保障。然而,熱備份方式並不能解決所有計算機系統數據管理問題,舉一個最簡單的例子,如果操作人員誤刪除了一個文件,熱備系統爲保證數據的一致性,會同時將這個文件的鏡像文件刪除,造成數據丟失。爲防止有用的數據因系統故障和人爲誤操作而損壞或丟失,實行數據存儲管理必不可少,數據存儲管理的核心是數據備份。


雙機容錯環境下Oracle數據庫的具體應用
目前許多建立和應用信息系統的企業,在系統應用不斷改進的同時,開始注意提高企業信息系統的可用性和可靠性。通過雙機容錯系統爲企業提供系統高可用性保障是目前企業普遍採用的方法。
醫療機構工作性質的特殊性要求其信息系統7天×24小時不間斷運行,採用雙機容錯方案爲系統提供了高可用解決方案。本文將對醫療信息系統的雙機容錯環境下Oracle數據庫應用做詳細介紹。
  
  系統配置
  
    該系統的硬件配置如下:
  
    主數據庫服務器: 富士通Primergy MS-610服務器(雙Xeon 700MHz CPU,1GB內存)。
    數據庫備份服務器: 富士通Team Server C870ie GP5C875(雙PentiumⅢ 700MHz CPU,1GB內存)。
    容錯軟件: 天地公司的SLHA 3.0軟件包。
    磁盤陣列: IQstore R1500(帶2個SCSI接口)。
    線路連接: 2臺服務器用RS-232串口線和RJ-45網絡線相連(如圖1所示)。
  
  
  
    軟件配置如下。
    操作系統: Windows NT Server 4.0
    服務器軟件配置: Windows NT 4.0 Service Pack 5、Internet Explorer 5.0、Microsoft Data Access Component 2.0,Oracle數據庫爲7.3.3企業版。
  
    雙機容錯的實現
  
    1. 操作系統的安裝
  
    我們用A機表示數據庫服務器,用B機表示備份數據庫服務器。首先在物理上將所需硬件設備連接好,分別在各自服務器上安裝Windows NT Server 4.0操作系統及補丁包等。然後,進入磁盤管理器,將磁盤陣列劃分爲2個邏輯盤D和E,此時2臺服務器都可訪問磁盤陣列。
  
    2.Oracle數據庫的安裝
  
    先關閉B機,在A機上安裝Oracle數據庫,安裝路徑默認爲D盤,歸檔日誌放在E盤。安裝完畢後,將Oracle的3個服務(此處SID爲ORCL,所以3個服務就是OracleServiceORCL、OracleStartORCL和OracleTNSlistener)的啓動方式改爲手動並將此3個服務停止。注意: 改爲手動的目的是爲了讓這3個服務由雙機容錯軟件來啓動,而不是由操作系統啓動。
  
    然後,關閉A機,啓動B機,格式化D盤,將剛剛由A機建立在磁盤陣列上的Oracle目錄也格式化掉; 在B機上安裝Oracle數據庫,安裝路徑默認爲D盤,安裝完畢,同樣將Oracle的3個服務的啓動方式改爲手動並停止3個服務。
  
    雙機上安裝Oracle的實質就是將Oracle系統分別裝在2臺服務器上,而數據只存儲在磁盤陣列上。
  
    3.雙機容錯軟件的安裝及雙機容錯環境的建立
  
    雙機容錯軟件的安裝非常簡單,只需啓動A機和B機,在2臺服務器上分別安裝該軟件即可。建立雙機容錯環境是將磁盤陣列上的D盤和E盤以及Oracle 的3個服務交由雙機容錯軟件控制,並由雙機容錯軟件進行切換。
  
    在雙機容錯軟件SLHA的"Configuration"選項中將數據庫服務器設爲Active狀態,即平時正常工作狀態時,此時數據庫服務器工作,備份服務器等待。當A機Active時,只有A機可以訪問磁盤陣列,B機不能訪問磁盤陣列。此時,Oracle數據庫服務器實際上是A機,A機的IP地址就是Active IP Address,同時A機的主機名爲Active Host Name; 當A機因故不能工作時,A機的狀態會被"心跳線"偵測到,這時B機開始切換到Active狀態,接管磁盤陣列,此時的Oracle數據庫服務器改爲B機,B機的IP地址就是Active IP Address,同時B機的主機名爲Active Host Name。上述操作均由系統自動完成,實踐證明切換所需的時間很快,對客戶端的影響很小。
  
    需要注意的問題
  
    1.當在A機安裝完Oracle數據庫後在B機安裝Oracle數據庫時,一定要先將磁盤陣列D盤格式化,而不是隻將D盤中已由A機安裝的Oracle數據庫刪除,否則可能會出現意想不到的錯誤,例如Oracle偵聽服務失敗等;
  
    2.最終安裝好Oracle數據庫後,要對D:\Oracle\Orant\network\Admin\ Listener.ora文件進行修改,其中Server名稱一定要改爲Active host name Alias,如不進行修改將使客戶端的Oracle數據庫用戶無法連接到Oracle數據庫中。
  
    3.在Hosts文件中增加一條記錄,使Active IP Address和Active Host Name相互對應,這樣系統就會自動起到解析作用。Hosts文件位於c:\Winnt\ system32\drivers\etc目錄下。
  
    4.要注意不到萬不得已,不要強行切換,避免產生數據錯誤。如必須對雙機進行切換,可先進入Svrmgr Oracle服務器控制檯,用Shutdown命令關閉Oracle數據庫,再進行切換。
    雙機容錯的原理
  
    Oracle數據庫安裝在磁盤陣列上(即圖2中Public Drives),2臺服務器都可以訪問它,但不能同時訪問。Oracle Server for NT主要提供3個服務:OracleServiceSID、OracleStartSID和OracleTNSlistener。在數據庫服務器正常工作時,由數據庫服務器控制磁盤陣列櫃,此時只有該服務器可以訪問磁盤陣列,該服務器上的Oracle服務處於啓動(Active)狀態,此時該服務器就扮演圖2中Active Server的角色,備份服務器處於等待(Standby)狀態,即圖2中Backup Server。
  
    當數據庫服務器發生故障不能工作時,雙機容錯系統會檢測到數據庫服務器的狀態,從而使備份服務器自動激活,接管磁盤陣列並自動啓動Oracle的3個服務,而對於客戶端來說,只經歷一個短暫的服務器重啓過程,訪問的數據仍是磁盤陣列中的數據。
  
    注意: 是雙機容錯軟件而不是操作系統來控制Oracle 的啓動和停止,即由雙機容錯軟件來控制這3個Oracle服務的啓動和停止,實現Oracle數據庫在雙機之間的切換 .
發佈了18 篇原創文章 · 獲贊 40 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章