資源描述:
《深度解析數(shù)據(jù)庫高可用性alwayson技術(shù)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、深度解析數(shù)據(jù)庫高可用性:AlwaysOn技術(shù) 為了實現(xiàn)企業(yè)核心業(yè)務(wù)系統(tǒng)的連續(xù)運行,保護(hù)關(guān)鍵數(shù)據(jù)免受計劃內(nèi)以及計劃外停機的影響,在SQLServer早期版本中就已經(jīng)提供了一系列的高可用性解決技術(shù),比如大家耳熟能詳?shù)墓收限D(zhuǎn)移群集、數(shù)據(jù)庫鏡像、日志傳遞、復(fù)制,此四種可高用性技術(shù)也有各自的優(yōu)缺點。正因為現(xiàn)有高可用性技術(shù)的不足,SQLServer2012中提出一種新的高可用性技術(shù)AlwaysOn,它集現(xiàn)有高可用性技術(shù)的優(yōu)點于一身,在介紹此技術(shù)之前,先對現(xiàn)有高可用性技術(shù)簡單介紹。SQLServer高可用技術(shù)簡述故障轉(zhuǎn)移群集
2、 故障轉(zhuǎn)移群集又稱為FailoverCluster。此技術(shù)使用的共享存儲技術(shù),不涉及到底層數(shù)據(jù)的同步問題,因此可以認(rèn)為群集的最大好處就是性能較高。正因為如此,存儲將成為整個群集技術(shù)中的單點故障。在短短的半年內(nèi),筆者遇到因為存儲單點故障而進(jìn)行的群集故障操作已有四個,平均一個多月就要處理一個。群集技術(shù)的另一個弊端就是某一個時間點只有一個節(jié)點處于活動狀態(tài),其他節(jié)點處于閑置不可用狀態(tài),造成了硬件資源的浪費。數(shù)據(jù)庫鏡像 數(shù)據(jù)庫鏡像又稱為DatabaseMirror。此技術(shù)可提供幾乎是瞬時的故障轉(zhuǎn)移,以提高數(shù)據(jù)庫的可用性。鏡
3、像基于單個數(shù)據(jù)庫實現(xiàn),數(shù)據(jù)庫鏡像會及時將主數(shù)據(jù)庫的數(shù)據(jù)同步到鏡像數(shù)據(jù)庫。此技術(shù)的最大弊端在于鏡像數(shù)據(jù)庫處于不可讀狀態(tài),無形中也造成了硬件資料的浪費。日志傳送 日志傳送又稱為LogShipping。同數(shù)據(jù)庫鏡像技術(shù)一樣,日志傳送是數(shù)據(jù)庫級操作??梢允褂萌罩緜魉蛠砭S護(hù)單個生產(chǎn)數(shù)據(jù)庫(稱為“主數(shù)據(jù)庫”)的一個或多個熱備用數(shù)據(jù)庫(稱為“輔助數(shù)據(jù)庫”)。此技術(shù)支持對輔助數(shù)據(jù)庫在還原作業(yè)之間的間隔時間內(nèi)的只讀訪問權(quán)限,可用做報表查詢,以提高資源的利用率。此技術(shù)一般用于遠(yuǎn)程的異步容災(zāi),存在部分?jǐn)?shù)據(jù)丟失的可能性。復(fù)制 復(fù)制又稱
4、為Replication。此技術(shù)基于數(shù)據(jù)庫對象級別,靈活性較高,可以很方便地將數(shù)據(jù)和數(shù)據(jù)庫對象從一個數(shù)據(jù)庫復(fù)制和分發(fā)到另一個數(shù)據(jù)庫,然后在數(shù)據(jù)庫之間進(jìn)行同步以保持一致性。使用復(fù)制,可以在局域網(wǎng)和廣域網(wǎng)、撥號連接、無線連接和Internet上將數(shù)據(jù)分發(fā)到不同位置以及分發(fā)給遠(yuǎn)程或移動用戶。此技術(shù)的弊端在于,它不支持DDL命令。如在源服務(wù)器中新建一個表對象,此對象是無法自動復(fù)制到目標(biāo)服務(wù)器的。AlwaysOn高可用性技術(shù) AlwaysOn是SQLServer2012中提供的一種全新的高可用性技術(shù),其集中了上述高可用性技
5、術(shù)的優(yōu)點,以確保企業(yè)無需增加成本和提高復(fù)雜度,即可實現(xiàn)最高級別的可用性和數(shù)據(jù)保護(hù)??稍跀?shù)據(jù)中心內(nèi)部以及跨數(shù)據(jù)中心實現(xiàn)數(shù)據(jù)冗余,快速地實現(xiàn)應(yīng)用程序故障轉(zhuǎn)移,保護(hù)現(xiàn)有硬件資源。同時簡化了其配置過程。AlwaysOn可以實現(xiàn)服務(wù)器實例級和數(shù)據(jù)庫級配置高可用性,所對應(yīng)的技術(shù)就是AlwaysOn故障轉(zhuǎn)移群集實例和AlwaysOn可用性組。AlwaysOn故障轉(zhuǎn)移群集實例 一般來說,在單服務(wù)器情況下,當(dāng)服務(wù)器上出現(xiàn)硬件或軟件故障時,連接到該服務(wù)器的應(yīng)用程序或客戶端將會停機。在AlwaysOn故障轉(zhuǎn)移群集實例環(huán)境中,SQLSe
6、rver實例的高可用性受到冗余節(jié)點的保護(hù)。在群集環(huán)境中,一次只能有一個節(jié)點擁有群集的資源組。在出現(xiàn)故障(硬件故障、操作系統(tǒng)故障、應(yīng)用程序或服務(wù)故障)或進(jìn)行計劃的升級時,該資源組的所有權(quán)就會轉(zhuǎn)移至另一個群集節(jié)點。此過程對于連接到SQLServer的客戶端或應(yīng)用程序是透明的,可以最大限度地縮短出現(xiàn)故障時應(yīng)用程序或客戶端的停機時間。因此AlwaysOn故障轉(zhuǎn)移群集實例必須由一組物理服務(wù)器節(jié)點構(gòu)成,這些服務(wù)器節(jié)點推薦使用類似的硬件配置以及相同的軟件配置,如操作系統(tǒng)的版本、SQLServer版本、修補程序級別、組件以及實例名
7、稱。相同的配置是確保群集在節(jié)點間進(jìn)行故障轉(zhuǎn)移時能夠正常運行的前提條件。 SQLServer2012在原有SQLServer故障轉(zhuǎn)移群集的基礎(chǔ)上功能得到了進(jìn)一步的增強,支持跨越子網(wǎng)實現(xiàn)多站點群集,此技術(shù)一般用于兩個或兩個以上的數(shù)據(jù)中心,以同時提供本地高可用性和遠(yuǎn)程的災(zāi)難恢復(fù)。其中,每個故障轉(zhuǎn)移群集節(jié)點都連接到其他子網(wǎng)或其他子網(wǎng)組。這些子網(wǎng)可以處于同一位置中,也可以位于地理上分散的站點。跨地理上分散的站點進(jìn)行群集有時又被稱為擴展群集。因為沒有供所有節(jié)點都可以訪問的共享存儲,所以在多個子網(wǎng)上的數(shù)據(jù)存儲之間應(yīng)該復(fù)制數(shù)據(jù)。
8、因此,多子網(wǎng)故障轉(zhuǎn)移群集除了具備高可用性之外,還提供了災(zāi)難恢復(fù)解決方案。下面以圖例說明: 在上圖中共有兩個數(shù)據(jù)中心并且處于不同子網(wǎng),本地數(shù)據(jù)中心subnet1使用的IP地址是10.168.0.10,當(dāng)本地數(shù)據(jù)中心發(fā)生故障時,SQLServer服務(wù)會轉(zhuǎn)移到遠(yuǎn)程數(shù)據(jù)中心,遠(yuǎn)程數(shù)據(jù)中心subnet2所使用的是不同IP地址,為192.168.0.10來繼續(xù)提供數(shù)據(jù)