標簽:MSSQL/節(jié)點和共享文件夾多數(shù)
概述
之前講過多數(shù)節(jié)點的仲裁配置,多數(shù)節(jié)點一般3個節(jié)點以上的奇數(shù)個節(jié)點;常見的是使用3個節(jié)點節(jié)點多了也是浪費因為Alwayson的只讀路由只能利用到一個只讀副本,但是從Windows2008開始可以用共享文件夾來代替一個節(jié)點來充當仲裁;這就又可以節(jié)省一臺服務器了只需要兩臺數(shù)據(jù)庫服務器加任意一臺電腦的共享文件夾,但是一般會選擇在域服務器上創(chuàng)建共享文件夾,可以使用alwayson的共享網(wǎng)絡位置。
數(shù)據(jù)庫:SQLServer2014 SP2
OS:Windows Server 2008R2
一、配置仲裁
可以在創(chuàng)建故障轉(zhuǎn)移集群的時候配置,也可以創(chuàng)建完集群后右鍵集群來修改仲裁配置
這里的共享文件夾路徑使用域服務器已經(jīng)創(chuàng)建好的共享網(wǎng)絡路徑
注意:這個路徑的權限必須everyone角色具有讀寫權限,否則集群會出現(xiàn)以下錯誤提示
二、讀寫分離
當使用兩個節(jié)點后,讀寫分離的配置和三個節(jié)點會稍微有點區(qū)別,假設我現(xiàn)在只有DB01,DB02兩個節(jié)點
1.Alwayson屬性配置
注意:主角色中的連接這里和三個節(jié)點不一樣,三個節(jié)點這里可以選擇“僅允許讀/寫連接”,這里是能選擇“允許所有連接”,否則其中一個節(jié)點無法訪問后只讀路由訪問會失敗(返回錯誤982)。
2.語句配置
---建立read指針 - 在當前的primary上為每個副本建立副本對于的tcp連接ALTER AVAILABILITY GROUP [Alwayson22]MODIFY REPLICA ONN'db01' WITH(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://db01.ag.com:1433'))ALTER AVAILABILITY GROUP [Alwayson22]MODIFY REPLICA ONN'db02' WITH(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://db02.ag.com:1433'))----為每個可能的primary role配置對應的只讀路由副本--list列表有優(yōu)先級關系,排在前面的具有更高的優(yōu)先級,當db02正常時只讀路由只能到db02,如果db02故障了只讀路由才能路由到DB01ALTER AVAILABILITY GROUP [Alwayson22]MODIFY REPLICA ONN'db01' WITH(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('db02','db01')));ALTER AVAILABILITY GROUP [Alwayson22]MODIFY REPLICA ONN'db02' WITH(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('db01','db02')));
--查詢優(yōu)先級關系SELECT ar.replica_server_name , rl.routing_priority , ( SELECT ar2.replica_server_name FROM sys.availability_read_only_routing_lists rl2 JOIN sys.availability_replicas AS ar2 ON rl2.read_only_replica_id = ar2.replica_id WHERE rl.replica_id = rl2.replica_id AND rl.routing_priority = rl2.routing_priority AND rl.read_only_replica_id = rl2.read_only_replica_id ) AS 'read_only_replica_server_name'FROM sys.availability_read_only_routing_lists rl JOIN sys.availability_replicas AS ar ON rl.replica_id = ar.replica_id
會發(fā)現(xiàn)配置只讀路由列表這里和之前的三個節(jié)點有區(qū)別,我用綠色標識了出來;之前三個節(jié)點的時候這里用的是DB03。
三個節(jié)點:當DB01節(jié)點無法訪問時,DB02節(jié)點變成主節(jié)點充當讀寫副本,DB03節(jié)點充當只讀副本。
兩個節(jié)點:當DB01節(jié)點無法訪問時,DB02節(jié)點變成主節(jié)點即充當讀寫副本同時也充當只讀副本。
當停止DB01的服務后仲裁會自動切換到DB02上來,且讀寫和只讀連接都會連接到DB02上。這里就不做演示從下圖也可以看到單節(jié)點DB02在線。
總結
對比三個節(jié)點,使用兩個節(jié)點可以減少一臺服務器節(jié)省不少人力成本。畢竟故障的情況并不是很多。但是也不得不說一下這種方案的弊端,那就是當一個節(jié)點故障后另一個節(jié)點要同時承擔讀寫和只讀的兩倍的負擔,使用該方案之前就必須得評估一個節(jié)點能否支持得起這種負載壓力?。。?/p>
http://www.cnblogs.com/chenmh/p/7156719.html