本文介紹了Oracle Data Guard(Data Guard的功能簡介、數據庫的切換),ORACLE的高級復制技術(基本概念、高級復制技術的基本結構、實現多主體復制的選擇)和Oracle9i數據庫:應用集群技術(Real Application Clusters的體系結構和特點)。
一、Oracle Data Guard
Oracle9i推出了一種功能強大,更能有效地實施災難恢復的解決方案 Oracle Data Guard 。Oracle Data Guard 采用主數據庫正常運行,一或多個備用數據庫進行備份的方式保護數據庫,備用數據庫的備份、管理和監視工作都是自動完成的,當主數據庫宕機發生時,至少有一個備用數據庫馬上投入使用,使應用程序的運行不會間斷,避免了系統的癱瘓。
(一)Data Guard的功能簡介
1.數據庫的切換
允許DBA將主數據庫切換到備用數據庫,此備用數據庫變為主數據庫,響應用戶的請求,而原主數據庫變為備用數據庫。Data Guard的這種特性保證了數據不會丟失,避免數據庫恢復期間無法處理用戶的請求。
2.通過分布式組態,增強數據庫的可用性
Oracle Data Guard是由主數據庫和一到多個備用數據庫構成,這些在Data Guard的環境中稱為站點,通常各個站點以松散的方式分布在各地,以網絡連接,所以,即使遇到地震、火災、洪水等自然災害,數據庫的數據也會得到很好地保護。Data Guard的結構由下圖所示:
3.同步主站點與備用站點的數據
在Data Guard環境中,將一個站點設置為主站點,用來響應用戶的請求,事務對數據庫所做的修改,以歸檔日志的形式由日志傳輸服務自動從主站點傳送到各個備用站點,以實現備用站點與主站點的同步。
4.防止數據庫的物理損壞
由於主站點的物理損壞不可能通過歸檔日志文件傳輸到備用站點,所以降低了由物理損壞帶給數據庫的風險。
(二)數據庫的切換
將主數據庫切換到備用數據庫,此備用數據庫變為主數據庫,而原主數據庫變為備用數據庫。數據庫的切換可以從主數據庫角色切換到備用數據庫角色,也可從備用數據庫角色切換到主數據庫角色。
1.主數據庫的工作模式:
Guaranteed protection:規定在修改主數據庫時,至少有一個備用數據庫有效。假如主備之間的連接中斷,通過中斷主實例來禁止數據的分歧,保證無數據丟失。這種模式對數據庫性能的影響最大。
Instant protection :規定在修改主數據庫時,至少有一個備用數據庫有效。與 Guaranteed protection 模式不同的是當主備之間的連接中斷,允許數據分歧,並當恢復連接後,解決數據分歧的現象。無數據丟失,對主數據庫的性能有較小的影響。
Rapid protection :指出主數據庫的修改在備用數據庫上有效。有數據丟失,最小化對數據庫性能的影響。
Delayed protection :指出主數據庫的修改最終在備用數據庫上有效。 Rapid protection 和 Delayed protection 模式即使在網絡連接有效時,也允許主數據庫與所有的備用數據庫有數據分歧,數據的丟失量等同於主數據庫聯機重做日志的未歸檔數。最小化對數據庫性能的影響。
四種模式的區別詳見下表:
2.備用數據庫的工作模式:
Managed recovery mode :最大化保護數據,主數據庫將聯機重做日志歸檔到備用數據庫,備用數據庫自動應用這些日志進行數據庫的恢復。
Read-only mode :備用數據庫不能應用歸檔日志。在這種模式下,只能對備用數據庫進行查詢。當備用數據庫重新處於mount方式,主數據庫繼續將日志歸檔到備用數據庫上。
雖然備用數據庫不能同時處於兩種模式,但可在兩種模式間進行切換。在大多數的Data Guard環境中,備用數據庫應處於恢復管理模式。
3 .Failover 和Switchover的區別
Failover :
◆ 將主數據庫offline,備用數據庫online,這種操作由系統和軟件失敗引起。
◆ 即使在備用數據庫上應用重做日志,也可能出現數據丟失的現象,除非備用數據庫運行在 guaranteed protection 模式。
◆ 原主數據庫重新使用時必須重新啟動實例。
◆ 其它的備用數據庫也需重新啟動實例。
Switchover :
◆ 故意將主數據庫offline,而將另一備用數據庫online,它能夠切換到備用數據庫而不需同步操作。如:可使用 Switchover 完成系統的平滑升級。
◆ 即使在備用數據庫上不應用重做日志,也不會造成數據的丟失。
◆ 數據庫不需重新啟動實例。這使主數據庫幾乎能立即在備用數據庫上恢復它的功能,因此可經常進行定期維護而不需中斷操作。
Failover和Switchover的區別為:當Failover發生,備用數據庫切換為主數據庫之後,它丟失了備用數據庫的所有能力,也就是說,不能再返回到備用模式;而Switchover可以,備用數據庫可切換為主數據庫,也可從主數據庫再切換回備用數據庫。
4.主數據庫與備用數據庫的切換
當主數據庫操作在 Guaranteed protection 和 Instant protection 兩種模式下,可保證數據庫在切換的過程中不丟失數據,這意味著主數據庫的所有歸檔日志都必須應用在備用數據庫上。假如歸檔日志沒有完全應用,或主數據庫工作在 Rapid 和 Delayed protection 模式,數據庫的切換將導致數據的丟失,數據丟失的總量可由主數據庫歸檔日志路徑屬性和備用數據庫歸檔日志的應用來決定。
二、Oracle 的高級復制技術
1.基本概念
復制,顧名思義就是將數據庫中的數據拷貝到不同物理地點的數據庫中以支持分布式應用,它是整個分布式計算解決方案的一個重要組成部分。
2.高級復制技術的基本結構
實體化視圖在以前的Oracle 版本中叫做“快照”。它被用來復制數據到復制環境中的非主站點。
實體化視圖可以是只讀的、可更新的或者是可寫的。
(1)只讀實體化視圖
在一個基礎結構中,實體化視圖可以提供只讀的訪問表數據,這個表數據來源於一個主體站點或者一個主實體化視圖站點。應用程序可以避免訪問主體站點和不考慮網絡是否可用,它可直接向只讀實體化視圖請求數據。下圖表示只讀實體化視圖
(2)可更新的實體化視圖
在一個更高級的結構中,可以創建一個可更新的實體化視圖,它允許用戶通過在這個可更新的實體化視圖上的插入、更新和刪除行的操作,來進行同樣的插入、更新和刪除主表或者主實體化視圖上的行。下圖表示使用可更新實體化視圖:
3.實現多主體復制的選擇
同步復制,復制數據在任何時間在任何復制節點均保持一致。如果復制環境中的任何一個節點的復制數據發生了更新操作,這種變化會立刻反映到其他所有的復制節點。這種技術適用於那些對於實時性要求較高的商業應用中。
異步復制,所有復制節點的數據在一定時間內是不同步的。如果復制環境中的其中的一個節點的復制數據發生了更新操作,這種改變將在不同的事務中被傳播和應用到其他所有復制節點。這些不同的事務間可以間隔幾秒,幾分種,幾小時,也可以是幾天之後。復制節點之間的數據臨時是不同步的,但傳播最終將保證所有復制節點間的數據一致。
過程化復制,成批的處理應用可以在一個單獨的事務中改變大量的數據。典型的行層次復制把許多數據改變加載到網絡上,為了避免這種問題,一個在復制環境中的批處理應用操作可以使用過程化復制,它只用單一復制存儲的過程調用來聚集數據復制品。
三、Oracle9i數據庫:應用集群技術
Oracle9i針對互聯網上日益增長的在線應用市場進行了許多關鍵的改進,它最特別的技術就在於Oracle9i真正應用集群(Oracle9i Real Application )。作為Oracle的新一代群集技術,Oracle9i真正應用集群基於Oracle獲得專利的高速緩存熔合體系結構,它能夠迅速、有效地在群集的所有計算機上共享那些經常被訪問的數據,以提供透明的應用可伸縮性。這一突破性技術,使Oracle9i真正應用集群能夠提供超過四個節點的直線性可伸縮性。另一方面,借助Cache Fusion體系結構能夠獨立處理每個節點的特性,Oracle9i真正應用集群能夠為電子商務應用提供令人振奮的可靠性。與其它廠商提供的集群技術相比,Oracle9i真正應用集群是利用獨立的計算機專門處理特殊的計算任務,管理數據的特殊“分段”。這種集群技術能夠使系統的可伸縮性、性能和可靠性獲得最大程度的平衡。因此,在用戶集群系統中增加計算機時,既不需要重新分配數據,也不需要重新編寫應用程序,Oracle9i真正應用集群能夠以透明的方式進行修改,以利用這些新的資源。
1.Real Application Clusters的體系結構
Real Application Clusters 是由多個節點中能同時訪問一個共享數據庫的多個組件構成。如圖:
Real Application Clusters 由下面組件構成:
◆ Cluster Manager
◆ The Global Cache Service and Global Enqueue Service
◆ Cluster Interconnect and Interprocess Communication (Node-to-Node)
◆ Disk Subsystems
在Real Application Clusters環境中,所有的節點可在同一數據庫上並發執行事務,Real Application Clusters保證每個節點訪問共享數據的一致性和完整性。可以把大的事務分解為多個小事務,在不同的節點執行。它適合DSS、OLTP及混合系統。
2.Oracle9iRealApplicationClusters的特點:
“開箱即用”,近線性的透明縮放;
與其它程序的良好兼容性,無需重新設計;
快速增長的集群,可快速增添節點和磁盤。
3.硬件組成
采用集群數據庫技術,最大程度節約硬件投資並保證企業信息存在於一個單一的數據庫中。硬件與數據庫的數據容量瓶頸曾經困擾企業的信息化建設。企業舊式的解決方法是不斷添加成堆成堆的服務器,並讓應用分散運行在多個服務器上的多個數據庫上。現在的辦法有所不同,比如Oracle 9i數據庫采用了"集群技術"(Real Application Clusters),它能夠讓單一數據庫同時在多台服務器上運行,而不需要對應用代碼或體系結構做出任何修改,此特性極大地改善了系統可靠性:如果數據容量增大,企業可以通過增加小型服務器進行擴充;而在任何一個服務器出現故障時不會對系統造成損害,因為其他服務器可以十分輕松地分擔起一部分新增加的負載。此特性還能夠縮短數據庫訪問時間,從而改善應用性能。並使得由多台較便宜的計算機組成的IT數據中心取代昂貴的大型機成為可能,這隨著CPU需求的增加能夠節省近80%的硬件(在某些情況下,就是數百萬美元)。Oracle數據庫至今占據了Unix開放系統之下66%以上的份額,它提供了卓越的開放性能,並引領當今數據庫技術標准。
高速緩存成亮點:
Oracle9i Real Application Clusters采用了新的Cache Fusion(高速緩存熔接)技術,Cache Fusion是群集數據庫技術的重大突破。在群集中,用戶的請求可以被群集數據庫的任何高速緩存所響應。當數據正在更新時,Cache Fusion能在各個服務器上的高速緩存之間進行協調,從而保證數據的正常讀取和更新。
如果一個查詢請求由一個遠程高速緩存所響應,數據塊將在從一個節點到另一個節點之間的高速群集中傳遞,"緩存熔接"過程將自動發生。該過程對於應用是透明的,大大提高了群集的可伸縮性。
Oracle9i Real Application Clusters幾乎和已有的所有網絡應用兼容,它支持群集功能,利用它可快速增加網絡節點。Oracle9i Real Application Clusters為群集裡的所有服務器提供透明的應用可伸縮性,從而解決了一個進程中服務器之間的爭端問題。
Oracle9i設置了一套新的標准,用以防止系統停機導致網絡中斷,保證系統的高可用性。這些新的功能包括災難防止、系統錯誤快速恢復和人為錯誤的透明恢復等。