SYBASE灾难备份方案
?
SYBASE災難備份方案
?
?
?
本方案主要從計算機系統的可用性出發,給出了高可用性問題的一般描述及群機方式的特色,進而提出了災難備份的特殊考慮及SYBASE的災難備份方案。
?
一、系統高可用性(High Availability)... 2
1、高可用性方案... 2
2、高可用性方案存在的問題... 3
二、SYBASE建議的災難備份方案... 5
1、SYBASE建議的災難備份方案及其主要組成部分... 5
2、數據庫自動復制系統... 6
1、SYBASE復制服務器Replication Server的基本原理... 7
2、Warm Standby Application中數據的傳遞方式... 7
3、客戶端自動切換系統... 8
系統的自動切換過程... 9
三、SYBASE災難備份方案的特點... 10
?
?
一、系統高可用性(High Availability)
1、高可用性方案
隨著計算機應用的不斷深入,人們對計算機系統高可用性(High Availability)的要求越來越高,特別是企業基于數據庫的關鍵業務系統,往往維系著企業的生命。人們不僅希望保障關鍵業務數據信息的完整,而且希望聯機應用能夠不間斷或者在最短的時間內自動恢復,這就是所謂的計算機系統的可靠性、可用性問題。
| 硬件 |
| 軟件 |
| 操作系統,網絡軟件系統,實用程序 |
| 應用軟件 數據庫管理系統 |
| 主機、硬盤、網絡等。 |
高可用性問題是用戶給整個計算機界提出的課題,這必然要求計算機系統的所有廠商包括計算機電源、硬件、操作系統、網絡、數據庫管理系統、應用軟件等提供相應的保障措施,并且這些措施往往得綜合考慮、統一配套使用。
圖1?計算機系統及其高可用性
| 可靠性 |
| 費用、消耗資源 |
| 數據庫系統?操作系統 ?硬件 |
當前可選用的措施較多:如依賴于硬件的容錯機方式、廣泛采用的群機方式(雙機或多機cluster系統)、數據復制方式等。其層面不同、針對性有異,代價也不同,圖示如下。
圖2?計算機系統高可用性措施及其代價比較
?
目前我國用戶廣泛采用的是群機方式(雙機或多機cluster系統),其基本配置如圖3所示,其基本原理可以概括為:同一機群(cluster)內的節點機之間通過共享磁盤組聯系起來,所有關鍵業務數據(共享數據)存儲于共享磁盤組;故障節點被其它節點替換時,故障節點管轄的數據所在的數據設備(共享磁盤組的一部分)被接管;節點替換/接管的時機決定于集群內運行的監視軟件;節點機上運行數據庫管理系統,管理該節點機控制的設備上的數據;客戶應用可以使用機群中的一個或多個數據庫服務器;節點機的替換意味著節點上運行的數據庫管理系統進程的切換,這些過程是在服務器后臺完成的,對于前端應用是透明的。
| TCP/IP(多網卡) |
?
RS232 & TCP/IP: Process Listener (Listen to each other for status) |
| 共享磁盤組(UNIX卷或原始分區) 存儲關鍵數據:數據庫 |
| 本地盤組 UNIX文件系統 |
圖3 群機方式的備份方案
SYBASE的ASE數據庫可以采用群機系統進行在線的、實時性的安全備份,并得到所有主流硬件/平臺廠商(IBM、HP、SUN、NCR、DEC、NT、Veritas、EMC等)的支持,并且廣泛應用于銀行、郵電等關鍵業務應用系統。尤其是與Veritas 和 EMC的合作,使得ASE數據庫更為高效地用于安全備份。
?
2、高可用性方案存在的問題
當前電信行業采用的大多為雙機容錯方案來實現系統的高可用性,如SYBASE的HA方式,Oracle的OPS或RAC等,它們的共同特點是兩臺機器共享一個磁盤陣列(共享磁盤組),當其中一臺機器發生故障時,另外一臺機器接管整個磁盤陣列,從而實現雙機容錯。具體如圖4。
?
圖4 Sybase HA系統
?
高可用性主要解決的是主機的容錯問題,如處理器、內存、網卡等硬件故障,它對由于自然災害所引發的容錯能力較弱,具體表現在:
?
· 由于兩臺機器共享一個磁盤陣列,用戶的所有數據都存儲在磁盤陣列上,數據只有一份備份,一旦磁盤陣列整體發生問題,整個系統將崩潰,所有數據全部丟失。
· 由于兩臺機器共享一個磁盤陣列,兩臺主機的位置受到很大限制,一般是在同一個建筑物內,當發生火災、地震、水災等自然災害時,整個系統也將崩潰,所有數據將丟失。
?
雖然我們定時對系統進行備份,但一般做不到實時備份,當系統崩潰后,即使可以利用備份進行恢復,也會造成數據丟失,同時在恢復期間,所用用戶都不能訪問數據庫,對于電信行業的許多關鍵業務系統如計費、營賬和網管系統來說,這種情況是絕對不允許發生的。
?
二、SYBASE建議的災難備份方案
隨著中國經濟的高速發展,電信行業在國民經濟中開始占有越來越重要的地位。對于電信系統,數據是一切工作的基礎,因此對數據的安全性和實時性要求很高,美國911事件后,各個行業開始把數據災難備份提到一個新的認識高度。因此,如何在管理好現有設備的同時建立一套功能完善的災難備份系統,成為當前電信部門亟待解決的重要問題。
為了確保自然災害(如火災、地震)或戰爭等情況下的系統可靠性/高可用性,我們希望找到某種備份方案,它必須克服群機系統中對節點機物理分布的限制,允許互為備份的節點各成系統(特別是有自己的磁盤系統),地理上任意放置;同時通過某種機制在節點之間自動同步實時變化的數據;節點之間的切換過程必須簡化;切換速度足夠快,即系統恢復時間足夠短;客戶應用盡可能透明于后臺/平滑切換。
這就是我們所說的災難備份,以上條目應當成為該種方案的目標。
?
1、SYBASE建議的災難備份方案及其主要組成部分
SYBASE建議的災難備份方案如圖5所示。在Sybase數據庫系統中,主要包含兩部分:數據庫自動復制系統和客戶端自動切換系統。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
圖5?SYBASE建議的災難備份方案
?
其主要組成部分包括:
·??? 主點和復制點數據庫服務器系統:用于為客戶提供關鍵業務服務。二者是獨立的計算機系統,物理分布無任何限制;邏輯上,二者互為備份,對客戶而言是一個整體(一個數據庫服務器);一般地,將當時對外提供數據服務的節點稱為主節點/活躍(Active)節點,另一節點稱為備份(Standby)節點,客戶連接主節點并作用于(修改)主點數據。
·??? 復制服務器系統:用于連接互為備份的兩個數據庫服務器系統,實現從主節點/活躍節點到備份節點的數據同步;在活躍節點失效時,可以方便地通知復制服務器,快速切換主、備節點(使備份節點變為活躍節點,反之活躍節點成為備份節點)。
·??? Sybase的OpenSwitch:客戶端自動切換采用OpenSwitch,它是一個OpenServer應用網關,負責客戶端和服務器端的連接管理和控制,CM(coordination Modules)是OpenSwitch的一個主要模塊,負責協調和控制失敗轉移。
·??? 客戶應用:連接到主節點/活躍節點,使用特別是更新主節點的業務數據。后臺發生主、備節點的切換時,待切換完成后,客戶應用自動重新連接到新的主節點(即由來的備份節點),繼續工作。
·??? 網絡:上述三部分之間的連接是通過網絡實現的,可以是WAN或LAN。SYBASE復制服務器能有效支持WAN環境下的數據復制,所以主、備節點可任意分布于網絡中。
?
2、數據庫自動復制系統
數據庫自動復制系統包括三部分:
·???????? 主點數據庫:系統正常運行時的數據庫系統,在正常情況下客戶端應用對數據庫的修改操作必須集中在主點數據庫。
·???????? 備份點數據庫:主點數據庫的一個備份,可以與主點數據庫在同一個地點,也可以在不同的地點,但主點數據庫系統和備份點數據庫系統必須通過專線網絡進行連接。正常情況下,備份點數據庫不能進行數據修改,但可以進行數據查詢,以分擔主點數據庫的負載。當主點數據庫系統發生故障時,所有客戶端都自動連接到備份點數據庫,進行正常操作,此時備份點數據庫自動升級為主點數據庫。
·???????? 復制服務器系統:用于連接主點和復制點兩個數據庫服務器系統,實現從主節點/活躍節點到備份節點的數據實時同步;當主點的數據發生改變時,復制服務器系統通過數據庫中的復制代理掃描數據庫的日志,把變化的日志讀取出來,通過復制服務器在復制點提交,從而保證數據的一致性。復制服務器具備斷點續發功能,保證多個數據庫間數據完整性與數據一致性。復制服務器采用復制命令語言(RCL)來監測和管理復制系統。
主點和復制點通過復制服務器的warm standby 技術實現兩個數據庫的準實時同步。當系統正常運行時,數據從主點復制到復制點。如果主點發生故障,則復制點接管主點的所有連接。當主點修復故障后,用戶可以把原來的復制點作為主點、原來的主點作為復制點重新構建復制系統,新的復制系統購建成功后,用戶可以保持切換后的運行狀態(如果兩個服務器在同一地點且硬件相同)也可以手工地切換到系統發生故障前的狀態,即故障前的主點仍然為主點,所有客戶端連接都連接到主點上。
?
1、SYBASE復制服務器Replication Server的基本原理
從上述對方案組成的敘述中可以看出,其關鍵產品是Sybase的復制服務器Replication Server。為了利于后續部分對方案細節的描述,有必要在此對Sybase的復制服務器Replication Server描述如下。
Sybase的復制服務器Replication Server突破了分布式數據庫的限制,為真正的系統分布提供了解決方案,是業界第一個用于建立經濟、可靠、高性能的分布式系統的實用產品。
·??? Replication Server能在整個分布式系統中保持數據的精確性,是因為它通過其敏感的日志傳輸代理(Log Transfer Agent)監測主節點的數據修改,由復制服務器異步地把提交的事務發送到存放數據拷貝的遠程節點,并維護最新的數據拷貝。
·??? 對于網絡出現故障的情況,Replication Server為了保障源點、目標點以及復制的正常工作,采取了先進的、智能的存儲轉發機制來保證系統的可用性。Replication Server擁有自己的存儲轉發隊列,在網絡故障情況下,對主點的數據的變化暫時存儲在隊列里,一旦網絡故障恢復正常,系統會自動地將數據的變化傳送到目標點服務器,保證數據的一致性。
·??? Replication Server不僅能夠保證在網絡中斷情況下能正常工作,并且能夠保證在網絡連通后,系統能自動地從上一次發送的斷點處繼續發送,節省用戶的網絡資源,提高傳送時間。這種智能的工作機制是靠Replication Server提供的復制機制中的穩定隊列(Stable Query)來實現的:Replication Server首先將利用LTM將主點數據的變化存儲在主點的穩定隊列里,網絡正常通信的情況下,準實時地將其中記錄的主點變化數據傳送到復制點的穩定隊列中。一旦網絡出現故障,LTM仍然會正常工作,監聽本地數據的變化,將變化量存入本地的穩定隊列,并且自動記憶網絡故障前的中斷點,當網絡重新恢復正常后,主場點的復制服務器會與復制點的復制服務器會話,并從斷點處將未傳送完的變化數據傳送到復制點的穩定隊列中去,從而節省了網絡傳送時間。這種智能的機制非常適合于有大文本字段(如:text, image)系統的復制。
·??? Sybase的Replication Server支持各種復制工作模式:一對多、多對一、多對多,他們對應著實際工作中的從中央到地方的下發、從地方到中央的匯總、以及地方、中央的雙向數據傳輸。Warm Standby Application是其最簡單的應用方式,由于其應用的典型性,Sybase的Replication Server相應簡化了這種應用的配置、操縱。
·??? Sybase的Replication Server還支持異種數據庫之間的復制。Sybase公司的中間件互連產品是業界中最強的,通過針對各種數據庫的中間件選項和復制服務器,可以在不同的數據庫之間進行數據復制,滿足信息系統的各種需要。
·??? 由各復制節點指明其所需要的數據,說明的精度可達到行級、列級,并給出相應的復制定義,則在復制節點就可得到涉及這些數據的所有更新。
·??? 不但支持基于事務的數據的復制,還支持存儲過程/函數的復制,大大拓展了復制的能力和靈活性。這種傳遞機制特別適合于基于存儲過程的業務系統的災難備份,因為互備節點之間不必傳遞大量的數據,而是傳遞引起數據變化的存儲過程名和參數。
?
2、Warm Standby Application中數據的傳遞方式
在明白了SYBASE復制服務器Replication Server的基本原理后,我們進一步以圖示的方式說明在Warm Standby Application中數據的傳遞方式(注意圖中步驟數字,不再分步說明)。在主、備節點發生切換后,其數據傳遞則反之。
圖6?Warm Standby Application中數據的傳遞方式
?
3、客戶端自動切換系統
為了使前臺客戶應用在后臺服務器切換時順利地實現重新連接甚至不改變連接,可以選擇如下方法:
·??? 修改客戶端使用的Interfaces文件。用切換后的數據庫服務器的“網絡地址/host-name + Port #”修正客戶Interfaces文件。
·??? 可能時,可以改變客戶應用連接的服務器名稱。
·??? 根據SYBASE客戶、服務器的識別機制,可以為同一邏輯名稱的服務器指定不同的“網絡地址/host-name + Port #”組合項,即映射到不同的物理服務器。
·??? 在客戶應用程序中加入必要的程序段,控制客戶應用的重新連接過程。
重新映射(Map)客戶應用到數據庫服務器的邏輯。比如,在客戶應用與數據庫服務器之間引入一個Open Server程序,一方面,它維持與前臺客戶應用的所有連接;另一方面,從該程序引出與后臺實際數據庫服務器的連接以一一對應于前臺連接。后臺數據庫切換時,只通過程序改變它與后臺的連接以及前后臺連接的一一對應關系,而不改變前臺連接。當然,有了這個中間程序后,還可通過程序幫助自動實現上述方案中后臺前后的有關工作。此種功能的Open Server程序即為SYBASE公司的OpenSwitch產品。
客戶端自動切換采用Sybase的OpenSwitch產品,它是一個OpenServer應用網關,負責客戶端和服務器端的連接管理和控制。它的實現機制如圖7,當客戶端連接時,連接到OpenSwitch(incoming application connections),然后OpenSwitch再根據用戶端的請求和數據庫服務器的運行狀況建立OpenSwitch的連接(outgoing connections)。
在系統的實際運行過程中,OpenSwitch把每一個客戶端連接(incoming application connections)松散地捆綁到一對服務器端的連接上(outgoing connections)。在圖7中即OpenSwitch到SQL?SERVER A 和SQL SERVER B的連接。當正常運轉時,OpenSwitch把客戶端連接與OpenSwitch到SQL?SERVER A的連接捆綁在一起,并對客戶端的連接信息進行存儲,如當前的數據庫、事務狀態等等。當服務器A發生故障時,OpenSwitch會自動把客戶端連接與OpenSwitch到服務器B的連接捆綁到一起,并通過客戶端的連接信息透明地實現客戶端連接切換。
?
?
圖7 OpenSwitchgong 工作原理
?
當主點服務器發生故障時,如果客戶端正好在進行事務處理,并且事務沒有結束,則OpenSwitch給客戶端發送一個1205的錯誤信息,要求重新提交該事務,然后自動進行切換。如果客戶端沒有進行事務處理,則OpenSwitch進行透明的客戶端連接切換。
?
系統的自動切換過程
在Sybase數據庫的復制過程中,會存在很短的時間延遲,主要是:
·???????????? 主點的復制代理線程從日志讀取日志的時間
·???????????? 日志在網絡的傳輸時間
·???????????? 主點的操作在復制點提交時需要的時間
當主點數據庫發生意外時,有可能在復制服務器中還存在沒有提交的日志數據,因此必須先把這些日志數據在備份點提交,然后進行切換,允許客戶端進行正常操作。OpenSwitch提供了一組API函數用于開發一個外部協調模塊來解決該問題。具體如圖8。
?
圖8 自動切換過程
?
具體的切換過程如下:
1)?主點數據庫服務器1發生故障
2)?外部協調模塊接收到主點服務器發生故障的消息,所有客戶端連接暫時懸掛起來。
3)?外部協調模塊同復制服務器的復制代理線程進行通信,確認隊列中所有的日志已經在備份點2進行了提交。
4)?外部協調模塊通知OpenSwitch可以進行切換。
5)?OpenSwitch切換所有客戶端連接到備份點2。
?
三、SYBASE災難備份方案的特點
通過采用Sybase的備份方案可以達到:
·?? 主點和備份點數據庫系統可以位于地理位置相距很遠的地方,并且系統的數據同時在主點和復制點都保存有一份,即使一份完全丟失,另一份數據也可以把系統恢復到故障前的工作狀態。
·?? 主點的硬件系統和復制點的硬件系統不必完全一樣,復制點的硬件可以比主點的硬件配置低,從而減少硬件投資費用,提高投資回報率。
·?? 因為Sybase復制系統復制的是數據庫日志,因此對主點的數據庫正常運行影響很小(5%以下)。
·?? 通過OpenSwitch可以實現客戶端的透明切換,客戶端無需重新啟動。
·?? OpenSwitch支持連接緩沖、資源管理等功能,大大提高性能。
?
OpenSwitch的要求:
·?? 主點和復制點的數據庫系統必須為Sybase數據庫(版本最好一致)
·?? 主點和復制點的數據庫名、設備名、邏輯段名必須一致
·?? 不支持SERVER-SIDE CURSOR
·?? 不支持動態SQL
·?? 不支持臨時表
·?? 相對于普通的客戶端/服務器結構,性能會受一定的影響。
?
當然,要構造一個完整的、實用的和可靠的災備系統,需要從各個層面共同協調,統一構造,如:網絡、硬件、電源、操作系統、數據庫系統、應用系統和維護軟件等。只有各個層面都考慮和配置了災備方式和災備的軟硬件產品,才能稱為一個容災系統,才能建立一個完善的容災中心。這樣,才能夠充分滿足點新的業務需求。
轉載于:https://www.cnblogs.com/sanle/archive/2006/07/04/442685.html
總結
以上是生活随笔為你收集整理的SYBASE灾难备份方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “穷光不忍还”上一句是什么
- 下一篇: 公司培训文档-JavaScript[对象