解讀SQL Server 2008可用性(2)_Mssql數據庫教程
推薦:關于SQL Server 2008中報表服務的詳解一、導言 盡管公司經常采集和存儲大量的數據,但是有時還是難以詳盡地顯示數據,而且也很難提供對商業中將發生什么的洞察以使商業決策者為公司作出相應的和及時的決策。 為了能作
不過遠程故障轉移集群就不僅僅是SQL Server一個人就能完成的了,這個方案要依賴于SQL Server,Windows Server這些基礎軟件,還要依賴于存儲設備、交換機、服務器這些硬件。
因為在遠程故障轉移集群中,共享儲存不再存在于一個數據中心,而是可能相距數十公里,甚至數千公里,因此中長距的底層存儲同步往往是這一解決方案的關鍵。對于中長距的底層存儲同步,通常分為兩種,一種是在30公里內的,通過單模光纖可以實現兩個數據中心存儲設備間的同步復制,而另外一種則是在30公里之外了,而這種情況通常都是通過租用ICP的線路來實現兩地間的異步復制。
聽上去好像很復雜,不過不用擔心,EMC這樣的廠商有非常成熟的硬件設備以及相關軟件。這就是為什么在SQL Server的Always On中會出現EMC這樣第三方廠商名字的原因。
遠程故障轉移集群的替代方案
哦,天哪!我們討論的解決方案似乎越來越貴。我可不希望這樣結束。
其實對于遠程故障轉移集群來說,主要解決的問題是站點失效的問題,因此單純使用SQL Server的功能也可以解決這個問題。盡管沒有基于硬件的那么高效和穩定。
那么怎么構建一個相對廉價的遠程容災方案呢?我們的答案是故障轉移集群 日志傳送/復制。在不提到這兩項技術的話,他們兩個一定會有意見的。
日志傳送依賴于日志備份以及還原來實現數據同步的,而復制呢,除了日志外多了一個快照(注意:復制中使用日志的方式與日志傳送是不一樣的)。因此我們只要確保主服務器的日志能夠以一個合理的頻率傳送給遠端的后備服務器,我們就可以提供一定程度上遠程容災能力了。
可是在SQL Server 2005之前,復制和日志傳送都有一些小問題,日志傳送是依賴于日志備份作業、日志傳送作業和日志還原作業,因此日志傳送無法做到連續性,他的嘴短同步間隔是一分鐘,無法再短了。事務復制盡管能做連續,但是事務復制有主從之分,如果是多站點這項技術會嚴重限制后備服務器的自治能力。
不過從SQL Server 2005開始,事務復制有了一種新的模式,叫做對等事務復制。對等事務復制平等看待參與復制的所有節點,而取消了主從之分。這就給我們的多站點數據服務規劃指出了一條新的道路。
不過大家在這張有些夸張的圖里面也許可以看出些端倪。通過對等事務復制,我們確實可以設計出一個非常復雜的數據復制拓撲,利用高速/低速線路,優質/常規線路,我們可以在分布于多個站點的服務器之間構建出一個復制拓撲。說上面這張圖是開玩笑,原因是通常復制拓撲不會這么混亂,但是對等復制一定可以制成這張圖上出現的服務器數量,關鍵是要良好規劃和設計。
算了,給張清楚點的吧。這是一個比較真實地對等復制拓撲,我們有兩個站點。站點內擁有高速的鏈接,而站點間則是相對低速的租用鏈路。A、B、C分別是三個應用的數據庫,A和C是本地性應用,因此僅在單個站點內進行了復制,保證其容災能力,而B是一個集團性的應用,為了確保其數據的可用性,因此在站點內和站點間分別實現了復制冗余,同時站點A和站點B可以互不干擾對數據的使用(當然這要依賴于數據庫的設計和對等復制鏈路的配置)。
SQL Server 2008在對等復制方面也有一個小小的改進,那就是沖突檢測。在SQL Server 2005的對等事務復制中,沖突是一個非常頭疼的事情,因此才會要求非常嚴格的數據訪問隔離設計。SQL Server 2008會在發生沖突的時候暫停復制,既保證了兩個站點間的正常數據訪問,也保證了在數據沖突時不會錯誤覆蓋正確的數據版本。
結束語
其實SQL Server的可用性和數據應用的可用性完全是兩個層面的事情,SQL Server僅僅是數據應用中的一個組成部分,因此如何達到真正的系統可用性,還要考慮更多的問題,通訊(交換機、路由器之類)、網絡服務(DNS、DHCP之類)、操作系統、應用服務(IIS、中間件服務器),還有很多很多的問題。
美國人遭遇了911,我們遭遇了512,除了沉重的傷痛之外也留給我們許多需要思考的問題。盡管對于很多IT來說,911和512似乎很遙遠,不過我們也討論到了IT系統需要面對的不僅僅是這些巨大的災難,還有颶風、火災、硬件故障、軟件缺陷、人為破壞,甚至是例行維護。因此規劃和實施有效的可用性方案算是未雨綢繆,當遇到真正的突發事件時,才能避免花費成百數千倍的代價去彌補。
分享:如何使用SQL Server代理運行CmdExec命令需求:調用網服務器(SMS SQL Server)上的短信發送接口(是一個存儲過程)來發送(Stage SQL Server)上的數據內容到本Team 成員的手機上。這兩臺服務器,本地在撥VPN后可以訪問。要求以本
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-解讀SQL Server 2008可用性(2)。