<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks

    搭建Oracle高可用數據庫環境

    ?
    • 摘要:該文詳細描敘了oracle在高可用環境中可能用到的技術,以及該技術的詳細描述,并且通過其構架分析,原理了解,技術成熟度分析,我們可以大致估算到其成本。
    • 標簽: 24*7 ? 高可用 ? 環境 ? oracle
    文章摘要

    ??? 24*7(有些叫法也為24*7*365)的高可用系統越來越多的受到廣泛重視與應用,那是因為在實際環境中,不間斷的系統代表的就是不間斷的義務收入。但是

    ??? ◆怎么樣搭建與管理24*7的高可用環境?
    ??? ◆各種各樣的高可用環境之間到底有什么差別?
    ??? ◆我們是否適合于哪種環境?
    ??? ◆現在高可用環境的主要方式以及以后的發展趨勢是什么?

    ??? 這些話題,都是決策者與實施者都應當考慮的,也是本文所探討的,我們需要搭建一個怎么樣的高可用環境,才能真正做到最適合。

    ?

    一、什么是高可用(High Availability)

    ??? 在高可用的解釋方面,有人給出了如下的詮釋:

    ??? (1)系統失敗或崩潰 (system faults and crashes)
    ??? (2)應用層或者中間層錯誤 (application and middleware failures)
    ??? (3)網絡失敗 (network failures)
    ??? (4)介質失敗,一般指存放數據的媒體故障 (media failures)
    ??? (5)人為失誤 (Human Error)
    ??? (6)容災 (Disasters and extended outages)
    ??? (7)計劃宕機與維護 (Planned downtime, maintenance and management tasks)

    ??? 可見,高可用不僅僅包含了系統本身故障,應用層的錯誤,人為錯誤等等,還應當包括數據冗余、容災以及計劃的維護時間,也就是說,一個真正的高可用環境,不僅僅是能避免系統本身的問題,還應當能防止天災人禍,以及有一個簡單可靠的系統維護方法(如微碼升級、軟件升級等等計劃停機維護)。

    ??? 現在高可用的計算方法一般以年在線率來計算,如規定一年之中的可用環境要達到99.95%,那么24*365*(1-99.95%)=4.38小時(包括維護時間)。那么假定一個系統本身一年之中故障時間是1小時,但是計劃維護時間卻花了20小時,那么這個系統也不能算是一個滿足設計要求的高可用環境。

    ??? 現階段使用環境中,基本沒有真正的100%的在線環境,或者說,如果達到100%的在線能力,將花費非常多的代價,所以一般能達到99.95%以上的可用性的環境,一般都可以認為是高可用環境。

    ??? 對于高可用性在線效率的計算,我們可以參考如下方法:

    圖1

    ??? 在公司收益與投入成本計算方面取得一個平衡,則是我們所希望的在線效率,但是收益與成本的計算方法則是決策者與實施者需要著重考慮的問題了,也是我們下面希望能試圖解釋的問題。

    ?

    二、Oracle高可用相關功能的產品概述

    ??? 因為高可用的范圍定義太廣泛,本文我們只討論與Oracle數據庫有關系的高可用設計,如數據庫主機的錯誤,數據所在的存儲錯誤,介質損壞以及主機與數據的冗余保護等等,并不討論應用層的設計,Oracle 提供支持high availability 相關產品主要有下面幾種:

    ??? (1) Oracle Parallel Server(8i)/ Real Application Cluster(9i/10g)
    ??? (2) Oracle Standby Database(8i)/Oracle Data Guard(9i/10g)
    ??? (3) Oralce Advanced Replication(8i)/Oracle Stream(9i/10g)
    ??? (4) Oracle Server HA
    ??? (5) Other: Mv/RMAN/Oracle Log Miner/Oracle Flashback Query(9/10gi)

    ??? 等等,還有其他很多小的功能,如在線表的重定義,新的安全審計功能等,也都是為在線系統而設計的,但是,我們這里主要只考慮構架方面的高可用設計,也就是與成本有關系的高可用設計,怎么樣達到成本與收益的最大平衡。

    ??? 所以,我們將主要討論的是Oracle OPS/RAC、Standby/Ddata guard、Advanced Replocation/Stream以及與Oracle Server相關的OS HA(雙機)。

    1、OPS /RAC

    ??? OPS/RAC 最原始的設計初衷就是system/application high availability。與其他產品相比較: OPS/RAC 是多個服務器的cluster,組成具有更大計算處理能力與故障處理能力的集群。cluster 里面不同的 node 使用一個(一般是一個)或多個oracle instances 與一個database 連接(Shared Storage)。

    ??? 主要的技術特點:

    ??? (1) database 所有的data files 是建立在共享存儲(Shared Storage)上面的,一般可以采用raw設備,共享文件系統或者是ASM(10g提供),因此在技術方面對OS 的設置有很高的依賴性,需要有OS支持的cluster軟件。
    ??? (2) OPS/RAC在共享存儲方面并沒有冗余保護,不具備在共享存儲陣列損壞的情況下具有切換的能力,因此 media failure 方面,要依靠RAID (redundant array of inexpensive disk) Subsystem、LV鏡相(LV Mirror)、卷復制(Volume Replication)或者是Standby/Data guard來實現數據的冗余保護。
    ??? (3)該技術是Oracle近來主推的技術,特別是10g以后的網格計算與線型擴展能力,在電信、移動、銀行行業使用廣泛。如果還是老的OPS,則不建議再使用,但是9i以后的Rac技術逐漸成熟,可以使用在高可用環境下,但是其管理成本與技術的復雜性,則也是需要考慮的。

    2、Advanced Replication /Stream

    ??? Advanced Replication 的設計初是分散異地的application access database locally。這種技術可以將一個數據庫中的objects復制到另一數據庫中。如果是整個數據庫的復制,也可用于高可用環境。

    ??? 從Oracle 9i開始,Oracle更傾向使用Stream的技術,通過對歸檔日志的挖掘,可以在對主系統沒有任何壓力的情況下,實現對數據庫的objects甚至整個數據庫的同步。

    ??? 主要的技術特點:

    ??? (1)技術相對靈活,可以對單獨的object,或者是整個數據庫進行復制,而且作為stream,復制的壓力更小,對主庫沒有壓力,著名的復制軟件share plex就是采用類似的技術進行數據的復制的。
    ??? (2)可以實現數據庫主機以及共享存儲的完全冗余保護,甚至是跨地域的容災保護,在很多比較大型的在線系統中,可以用該技術實現系統的讀寫分離,通過該技術把寫站點的數據復制到多個讀站點,大大提高系統的可用性與安全性。
    ??? (3)因為Advanced Replication與Stream的不成熟性與技術復雜性,該技術沒有被廣泛的使用,但是其對應軟件share plex使用還是瞞廣泛的,不過因為其昂貴的價格,則是需要考慮其搭建成本的。

    3、Standby/Data Guard

    ??? Standby database/Data guard是ORACLE推出的一種高可用性數據庫方案,在主節點與備用節點間通過日志同步來保證數據的同步,備用節點作為主節點的備份,可以實現快速切換與災難性恢復。

    ??? Oracle從7.3才開始支持standby database。在9i開始,發展為data guard,并支持MAXIMIZE PROTECTION、MAXIMIZE AVAILABILITY、MAXIMIZE PERFORMANCE的三種保護模式,可以實現自由的手工主備切換,實現高可用的條件,如果配置合理,可以實現部分的自動切換。

    ??? 從Oracle 9i開始,也開始支持邏輯standby,邏輯standby的原理跟Stream復制相差不大,可以歸結到Stream中。

    ??? 主要的技術特點:

    ??? (1)可以實現數據庫主機以及共享存儲的完全冗余保護,該冗余甚至可以跨地域,做成容災保護,另外,主節點必須運行在歸檔模式下,并且可能要force logging,保證備用節點的數據正確性。
    ??? (2)主備用節點對OS的環境要求比較高,必須要是相同的OS環境(相差一定的beta版本一般關系不大),而且數據庫環境最好也一致。
    ??? (3)除了最大保護模式外,其它模式下如果主站點的存儲損壞而導致備用站點進行失敗切換的時候,需要注意數據的丟失問題,務必同步完主站點當前的聯機日志。
    ??? (4)備用節點的主機與存儲基本不能提供訪問,僅僅能提供只讀查詢,所以該技術也有嚴重的資源浪費,不過該技術因為成本比較低,管理方便,技術成熟,所以被廣泛使用。

    4、OS相關HA

    ??? Oracle Server HA是基于OS的技術,采用OS支持的Cluster Soft來保證主機的冗余保護,跟Rac一樣,不能保證共享存儲的高可靠性。

    ??? 它的基本架構共分兩種模式:雙機互備援(Dual Active)模式和雙機熱備份(Hot Standby)模式,對于Dual Active模式,雙機都是正常工作的,但是工作業務不同,在一個主機故障時,切換到另外一個主機上;Hot Standby模式則只有一個機器工作,另外一個機器處于接管狀態。

    ??? 不管是哪種模式,Cluster都可以正確的檢測到系統異常并自動進行失敗切換,如果是Dual Active模式,則需要注意當兩個業務都切換到一個server上的時候,該機器是否能承載雙份的壓力。

    ??? 主要的技術特點:

    ??? (1)與Rac一樣,database 所有的data files 是建立在共享存儲上面的,存儲的冗余保護則需要依賴其它技術。
    ??? (2)HA的技術簡單成熟,所以在實際使用中,也能被廣泛采用,但是,對主機資源的浪費也最為嚴重,基本上要保證有對等的資源處于等待狀態。

    ?

    三、Oracle高可用相關功能的詳細說明

    1、OPS/RAC

    ??? OPS/RAC通過兩個或多個節點的cluster,多個節點之間,采用高速通信鏈路連接,來解決數據庫的高可用性,在OPS/RAC中,每個節點都可以被應用端訪問并可以自動負載平衡。

    ??? 如果其中一個節點發生故障,所有的節點將自動切換到另外一個(或幾個)節點上。可以實現動態應用的切換以及數據庫服務器及時的失敗處理,在server的高可用方面提供最高保護。

    ??? 但是OPS/RAC并不對磁盤,陣列提供保護的特性,如果發生介質的物理損壞,將可能導致服務器的宕機。所以我們可以對OPS/RAC進行進一步的保護,如采用好的RAID方式(如RAID 10),也可以在OS層面上對邏輯卷做鏡相或者復制,甚至采用RAC+DATA GUARD雙重保護。

    ??? Rac已經被廣泛使用在高可用環境,但是,除了硬件成本,cluster軟件成本,我們還需要考慮管理成本。
    ??? 如以下的一個4節點的Rac結構中,4個節點可以同時被訪問,如果其中一個出現故障,該節點上的應用將被自動切換到其它3個節點上,另外,通過SAN的存儲網絡,實現數據的冗余保護。

    高可用02
    圖2

    ?

    2、Advanced Replication /Stream

    ??? Advanced Replication/Stream用于高可用,一般是指對數據庫的整個復制,如果數據庫在異地,也還可以用于容災,所以,如果該技術用的好,是一個非常不錯的選擇。

    高可用03
    圖3

    ??? 如上圖的結構中,主站點可以在城東,被復制站點可以在城西或者更遠的地方,數據通過城市網絡傳向被復制站點,在stream中,傳送的可以是被分析過的LCR anydata數據結構,到目標數據庫的時候再解析成對應的DML語句實現同步。

    ??? 這樣的話,主站點與被復制的站點可以分別的被應用訪問,雖然被復制站點可能比主站點的數據要延遲一些。

    ??? 正因為Advanced Replication/Stream既實現了高可用,又實現了容災,在大型的在線電子商務網站中,一般使用成熟的share plex軟件實現讀寫分離,讀的站點可以分布在世界各地,既大大提高了網站系統的可用性,又大大提高了數據的安全性。

    3、Standby/Data Guard

    ??? Standby/Data guard因為技術簡單成熟,成本低廉(Oracle自帶的功能,不需要單獨購買),是廣泛采用的一種數據庫的高性能與容災方案,如果采用不同保護級別可能會有不同的性能結果,如想不丟失數據,則可能會影響性能,如果想最好的性能,則一定注意保證在主節點完全故障的時候,備用節點不會丟失數據。

    高可用04
    圖4

    ??? 備用數據庫可以認為是一個主數據庫的鏡相,一個處于不斷恢復日志中的主數據庫。從9i開始,備用數據庫又分為物理備用數據庫與邏輯備用數據庫,我們這里只討論物理備用數據庫。

    ??? Standby/Data guard實現了數據庫的高可用以及數據的異地容災,與Advanced Replication/Stream不一樣的是,備用站點不能實時的被訪問,降低了資源的利用程度,而且如果主站點故障,一般需要手工切換。

    ??? 但是,正因為其方便的管理,成熟的技術,低廉的價格,所以也被廣泛的使用在數據的容災上面,如果與RAC結合,RAC+Data Guard可以實現一個良好的高可用,高性能的數據庫。

    4、OS相關HA

    ??? HA很類似于RAC,兩種方式,都需要兩個Server,一個閑置。 在主機crash 的情況下,都可以提供某種程度的恢復,保持系統可用。 不過一個是OS Vendor的solution,一個是Oracle的solution,如,在一個 一備三 的系統結構中:

    高可用05
    圖5

    ??? 在以上的結構中,正在被使用的數據庫服務器有3臺,其中3臺中任何一臺發生故障,可以被一臺備用主機接管,等待發生故障的機器修復,再手工切換會原來的結構。

    ??? HA的最好好處就是可以解決服務器的單點故障的問題,如機器故障,與Rac一樣,并不能解決磁盤故障問題或者是陣列故障問題。所以HA也必須采用附加的備份機制如LV鏡相與卷復制,或配套使用oracle standby。

    ??? HA的機制起源比較早,發展到現在已經日趨成熟,在實際安例中,使用還是比較廣泛的,但是它必須有一半的資源處于等待狀態,所以資源浪費跟standby一樣,比較嚴重。

    ?

    四、Oracle高可用相關功能的對比說明與方案選擇

    ??? 通過以上的詳細說明,我們描繪了Oracle數據庫在高可用性方面可以達到的效果以及特性,并且從原理上與構架上,我們也可以分析到其成本(包括管理成本),再加上其技術的成熟程度以及使用程度,我們以一張表格來對照一下:

    高可用06
    圖六

    ??? ①:這里指單獨的使用該功能,但是如果與LV Mirror/ Volume Replication/Data guard等功能結合起來,是可以實現數據保護與容災功能的,如果設計合理,在災難切換時,也可以保證不丟失任何數據,但是也需要為以上功能付出更多的成本。
    ??? ②:對于Advanced Replication /Stream,現階段的確不太成熟,還沒有廣泛的使用起來,但是類似這樣功能的軟件,如Share plex已經比較成熟了,在全球范圍內還是被廣泛驗證過了的。
    ??? ③:在一定條件下,可以配置成自動切換。
    ??? ④:如果主站點完全故障,可能會導致數據丟失(主要是當前聯機日志),不過可以考慮把當前聯機日志分布到各地地點的方法避免該問題的出現。
    ??? ⑤:如果在非最大保護模式下,與④有相同的結果與預防處理方式。

    ??? 我們通過該表格的對比可以發現,沒有最好,只有看我們自己的最適合了,每一種方式都有自己的缺陷有優點。而且,在實際的使用中,真正的高可用環境也很少單獨來使用這些技術的,一般都是結合來使用,如:

    ??? 1、有的電子商務使用Rac + Share plex (或Stream)的技術實現讀寫分離的技術,可以實現高可用+容災。
    ??? 2、有的電信行業用遠程Rac +遠程 LV Mirror,可以實現本地與遠程應用的動態切換,實現主機的異地冗余保護與數據的異地容災
    ??? 3、有的電子商務采用本地HA+遠程Standby,實現數據庫服務器與存儲的雙重冗余,分別實現不同級別的主機冗余與數據的異地容災。
    ??? 4、有的銀行行業采用本地Rac+ 遠程vvr(Veritas Volume Replication),實現本地系統的主機冗余與遠程系統數據的異地容災。

    ?

    總結

    ??? 該文詳細描敘了oracle在高可用環境中可能用到的技術,以及該技術的詳細描述,并且通過其構架分析,原理了解,技術成熟度分析,我們可以大致估算到其成本。

    ??? 而且,在實際的使用環境中,沒有最好的技術,只有最適合于自己的技術,使自己的成本與收益能達到一個最合適的平衡,這個,就是我們最終需要達到的目的。

    ??? 以上的技術與方案,僅供參考。

    ?
    posted on 2009-02-16 22:46 decode360 閱讀(171) 評論(0)  編輯  收藏 所屬分類: 07.Oracle
    主站蜘蛛池模板: 亚洲国产精品成人久久蜜臀| 亚洲视频一区调教| 亚洲免费视频一区二区三区| 亚洲精品国产精品乱码不99 | 黄色网址大全免费| 亚洲国产成人精品无码区在线观看 | 在线观看日本亚洲一区| 亚洲精品第一国产综合境外资源| 免费精品99久久国产综合精品| 亚洲一级毛片在线播放| 老司机亚洲精品影视www| 曰曰鲁夜夜免费播放视频| 一本到卡二卡三卡免费高| 亚洲免费人成视频观看| 亚洲欭美日韩颜射在线二| 成视频年人黄网站免费视频| 狠狠躁狠狠爱免费视频无码| 久久精品国产亚洲αv忘忧草 | 亚洲午夜理论片在线观看| 久久久久亚洲精品天堂久久久久久| 国产成人精品久久免费动漫| 色多多A级毛片免费看| 亚洲国产精品成人精品小说| 久久亚洲中文字幕精品一区四| 最近中文字幕mv免费高清电影| 天黑黑影院在线观看视频高清免费 | 免费中文字幕在线观看| 在线精品一卡乱码免费| 精品一区二区三区高清免费观看| 精品国产成人亚洲午夜福利| 久久久久亚洲AV成人无码| 亚洲欧洲日产国码高潮αv| 成人免费视频试看120秒| 67194成手机免费观看| 18禁在线无遮挡免费观看网站| 香蕉97碰碰视频免费| 亚洲精品成a人在线观看夫 | 久久免费观看国产精品| 91免费在线视频| 九九免费观看全部免费视频| 亚洲国产AV无码一区二区三区|