如果我們的SQL Server要保證高可用性,那么可以采用故障轉移群集。最簡單的故障轉移群集是兩臺服務器,一臺做活動的服務器,另一臺做備用服務器,這就是AP模式的Cluster。另外一個模式就是AA模式,也就是兩臺服務器都是運行SQL Server實例。
SQL Server不像Oracle一樣有RAC,所以不可能說兩臺服務器同時運行同一個實例,想要兩臺服務器都使用起來的話,那么只有各自運行一個實例。
那么我們企業里面要做Cluster的時候,到底應該做AP模式的還是做AA模式的呢?
AP模式是在兩臺服務器上安裝一個數據庫實例,只有一臺服務器負責該數據庫實例的全部運算和操作,另外一臺服務器閑置。當活動的服務器發生故障時,系統自動啟動另一臺服務器的實例,實現故障轉移。AP模式的最大缺點就是資源利用率低,只有一臺服務器在被使用。
AA模式是在兩臺服務器上安裝兩個數據庫實例,每臺服務器分別運行一個數據庫實例。當某一臺服務器發生故障時系統將把發生故障的服務器上的數據庫實例切換到另一臺服務器上運行,也就是說另一臺服務器上同時運行兩個實例,當服務器恢復正常后再手動將一個數據庫實例切換回另一臺服務器。AA模式保證了兩臺服務器資源都被利用。
關于1個數據庫實例中2個數據庫和2個數據庫實例中各1個數據庫的區別:
1. 1個數據庫實例中的2個數據庫都必須運行在同一臺服務器上,所以如果2個數據庫都具有大量的運算占用大量的資源,則可能造成數據庫服務器壓力過大,運行緩慢;而2個實例中各1個數據庫則可以將每個實例部署在不同的服務器上,各自使用各自服務器的資源,相互沒有影響。
2. 1個實例中2個數據庫的相互訪問比較簡單,可以對2個數據庫進行事務操作;而2個實例中的數據庫要相互訪問則需要通過鏈接服務器或者其他方式來訪問,如果要在2個實例中進行事務操作則需要啟用分布式事務MSDTC,使用分布式事務將會使事務時間變長,事務出現錯誤的可能更大,甚至出現各種靈異的錯誤,所以一般不推薦使用分布式事務。
所以,如果我們在有足夠資源(也就是很有錢的意思)的情況下,而且想簡單一點,那么我們就做AP模式。畢竟AA模式比AP模式更復雜,更難于管理。如果我們想充分利用服務器資源,服務器有限,而且多個數據庫之間不存在分布式事務的話,那么用AA模式是一個不錯的選擇。
以以前的經驗來看,最好不要使用分布式事務,會遇到各種各樣靈異的問題。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
