標簽: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

 

一、配置仲裁

 萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

可以在創(chuàng)建故障轉(zhuǎn)移集群的時候配置,也可以創(chuàng)建完集群后右鍵集群來修改仲裁配置

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

這里的共享文件夾路徑使用域服務器已經(jīng)創(chuàng)建好的共享網(wǎng)絡路徑

注意:這個路徑的權限必須everyone角色具有讀寫權限,否則集群會出現(xiàn)以下錯誤提示

 萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

二、讀寫分離

當使用兩個節(jié)點后,讀寫分離的配置和三個節(jié)點會稍微有點區(qū)別,假設我現(xiàn)在只有DB01,DB02兩個節(jié)點

1.Alwayson屬性配置

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

注意:主角色中的連接這里和三個節(jié)點不一樣,三個節(jié)點這里可以選擇“僅允許讀/寫連接”,這里是能選擇“允許所有連接”,否則其中一個節(jié)點無法訪問后只讀路由訪問會失敗(返回錯誤982)。

2.語句配置

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

---建立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')));

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

--查詢優(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

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

會發(fā)現(xiàn)配置只讀路由列表這里和之前的三個節(jié)點有區(qū)別,我用綠色標識了出來;之前三個節(jié)點的時候這里用的是DB03。

三個節(jié)點:當DB01節(jié)點無法訪問時,DB02節(jié)點變成主節(jié)點充當讀寫副本,DB03節(jié)點充當只讀副本。

兩個節(jié)點:當DB01節(jié)點無法訪問時,DB02節(jié)點變成主節(jié)點即充當讀寫副本同時也充當只讀副本。

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

當停止DB01的服務后仲裁會自動切換到DB02上來,且讀寫和只讀連接都會連接到DB02上。這里就不做演示從下圖也可以看到單節(jié)點DB02在線。

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

總結  

對比三個節(jié)點,使用兩個節(jié)點可以減少一臺服務器節(jié)省不少人力成本。畢竟故障的情況并不是很多。但是也不得不說一下這種方案的弊端,那就是當一個節(jié)點故障后另一個節(jié)點要同時承擔讀寫和只讀的兩倍的負擔,使用該方案之前就必須得評估一個節(jié)點能否支持得起這種負載壓力?。。?/p>

 

http://www.cnblogs.com/chenmh/p/7156719.html