SQL Server AlwaysOn中的几个误区
? ? AlwaysOn自SQL Server2012之后已經(jīng)發(fā)布很久了,最近我在給一些客戶做咨詢的時候經(jīng)常被問起是不是應(yīng)該使用AlwaysOn,從客戶的視角來看仿佛AlwaysOn是一個包治百病的良藥,但實(shí)際上沒有包治百病的良藥。因此在此我談一談AlwaysOn中的常見誤區(qū)。
?
1.AlwaysOn可以實(shí)現(xiàn)負(fù)載均衡。
答案是否定的,AlwaysOn在特定條件下(需要修改前端應(yīng)用程序)可以負(fù)擔(dān)只讀負(fù)載,但負(fù)載均衡是無法做到的。在SQL Server中如果希望實(shí)現(xiàn)負(fù)載均衡可以考慮兩個方向,通過復(fù)雜的架構(gòu)以及和修改應(yīng)用程序來共同實(shí)現(xiàn),可以考慮的方向諸如:
可伸縮共享數(shù)據(jù)庫
該特性允許多個SQL Server實(shí)例連接到一個共享的只讀存儲,從而使得報表服務(wù)可以Scale-Out,但只能擴(kuò)展只讀負(fù)載,拓?fù)鋱D如圖1所示。
?
圖1.可伸縮共享數(shù)據(jù)庫
?
對等復(fù)制
? 對等復(fù)制允許節(jié)點(diǎn)中的每一個點(diǎn)進(jìn)行更新。但對等復(fù)制有比較嚴(yán)格的限制,包括每個節(jié)點(diǎn)可更新的數(shù)據(jù)庫范圍的考慮、沖突的處理、對網(wǎng)絡(luò)帶寬的要求、對運(yùn)維人員水平的要求、對丟失數(shù)據(jù)方面的考慮等,典型拓?fù)鋱D如圖2所示。
圖2.對等復(fù)制拓?fù)?/p>
?
分布式視圖
簡單理解,分布式視圖就是將數(shù)據(jù)分布到多個節(jié)點(diǎn),通過視圖將這些數(shù)據(jù)匯總起來。這種方案需要對程序做大量修改,比較麻煩。
?
SQL Server Service Borker(SSB)
? 說到這個方案,我曾經(jīng)因?yàn)檫@個方案吃過不少苦頭。該方案實(shí)施起來過于復(fù)雜,并且需要應(yīng)用程序端針對做大量修改,經(jīng)常掉消息。沒有專業(yè)的DBA來看就是自尋死路。
???
考慮第三方方案
? SQL Server一直沒有原生的負(fù)載均衡方案,如果自己沒有很強(qiáng)大的實(shí)力或是使用的是第三方廠商提供的產(chǎn)品無法修改代碼,可以考慮第三方方案,國內(nèi)我知道一家公司,格瑞趨勢(http://www.grqsh.com/)專門做SQL Server上的負(fù)載均衡的方案。我在微軟舉辦的一次活動中和他們的數(shù)據(jù)庫咨詢顧問交流過,水平還不錯。
?
?
2.AlwaysOn是一個Share-Nothing方案
? 只說對了一半。實(shí)際上,AlwaysOn中包含兩種方案,AlwaysOnFailover Cluster Instance可以看作之前SQL Server故障轉(zhuǎn)移集群的升級版本,升級的部分包括更靈活的故障轉(zhuǎn)移策略、可以將TempDB放到本地存儲等特性。該方式是共享磁盤的解決方案。
??? 另一部分是AlwaysOnAvailability Group是Share-Nothing的方案,可以看作之前鏡像的升級版本,只是副本可以同時存在4個(SQL Server 2014中是8個)并且允許只讀。
?
3.AlwaysOn是以一組數(shù)據(jù)庫為粒度,則可以執(zhí)行針對改組數(shù)據(jù)庫的跨庫事務(wù)
??? 不允許。雖然可用性組是以多個庫為粒度,但不允許事務(wù)中更新的數(shù)據(jù)涉及到AlwaysOn中的多個庫。
?
4.AlwaysOn中的每個節(jié)點(diǎn)都必須在物理機(jī)上
錯誤,實(shí)際上,AlwaysOn的WSFC也可以在虛擬環(huán)境中。
?
5.AlwaysOn可用性組的性能會比鏡像高很多
??? 這也同樣是一個常見的誤區(qū),或許和微軟對AlwaysOn的宣傳有關(guān),我咨詢過的一些客戶都受到過微軟號稱AlwaysOn包治百病,但實(shí)際上AlwaysOn是基于鏡像,如果您的網(wǎng)絡(luò)或IO性能存在問題,那么即使使用了AlwaysOn可用性組性能也會存在問題。
?
posted on 2015-03-07 09:39 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/4319778.html
總結(jié)
以上是生活随笔為你收集整理的SQL Server AlwaysOn中的几个误区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS GCD编程
- 下一篇: Java Dom解析xml