SQLServer 2014 本地机房HA+灾备机房DR解决方案
SQLServer 2014 主數(shù)據(jù)中心HA+災(zāi)備機(jī)房DR解決方案
?
SQLServer 2008 的時(shí)候使用 local WSFC+DR Mirror方式,對(duì)象是單數(shù)據(jù)庫(kù)
兩個(gè)單獨(dú)的 WSFC 上使用兩個(gè) FCI
每個(gè)WSFC有兩個(gè)以上的節(jié)點(diǎn)
數(shù)據(jù)庫(kù)鏡像允許單獨(dú) WSFC 上的多個(gè) FCI 使用相同的實(shí)例名稱
?
?
SQLServer 2012/2014 的時(shí)候使用 local WSFC+DR AG方式,對(duì)象是可用性組(一般為整個(gè)實(shí)例)
單個(gè) WSFC 上使用兩個(gè) FCI
單個(gè) WSFC 含有四個(gè)以上節(jié)點(diǎn),每個(gè)FCI(failover cluster instance)有兩個(gè)以上的節(jié)點(diǎn)
在同一個(gè) WSFC 內(nèi),兩個(gè) FCI 必須使用不同的實(shí)例名稱,例如,使用“INST_A”作為主 FCI 的實(shí)例名稱,使用“INST_B”作為 DR FCI 的實(shí)例名稱
?核心業(yè)務(wù)dr使用集群
?
非核心業(yè)務(wù)dr使用單實(shí)例
?
?
(*)由于跨機(jī)房的WSFC,共享存儲(chǔ)的注意事項(xiàng)
每個(gè) FCI 都有自己的共享存儲(chǔ)(其他數(shù)據(jù)中心內(nèi)的節(jié)點(diǎn)無(wú)法訪問),稱作非對(duì)稱存儲(chǔ)
兩個(gè) FCI 中的數(shù)據(jù)庫(kù)文件和事務(wù)日志文件也應(yīng)該使用完全相同的文件路徑,磁盤應(yīng)使用完全相同的驅(qū)動(dòng)器號(hào)(避免搭建ag,還原輔助副本的時(shí)候使用restore with move/創(chuàng)建文件組或者日志操作的失敗)
每個(gè)FCI中,SQL Server 實(shí)例的 FCI 故障轉(zhuǎn)移是自動(dòng)執(zhí)行的;AG的故障轉(zhuǎn)移模式必須是手動(dòng),AG同步模式建議異步提交
?
(*)由于跨機(jī)房的WSFC,仲裁投票、仲裁模型 的注意事項(xiàng)
默認(rèn)情況下,故障轉(zhuǎn)移群集中的每個(gè)節(jié)點(diǎn)都具有投票( 節(jié)點(diǎn)的 NodeWeight 屬性),引入一個(gè)修補(bǔ)程序 (http://support.microsoft.com/kb/2494036(用于將 1 個(gè)投票分配給 WSFC 中的特定節(jié)點(diǎn),將 0 個(gè)投票分配給其他一些節(jié)點(diǎn)),拓?fù)渲械拿總€(gè)節(jié)點(diǎn)上都必須安裝此修補(bǔ)程序
投票方案:
- 主數(shù)據(jù)中心的每個(gè)節(jié)點(diǎn)有 1 個(gè)投票
- DR數(shù)據(jù)中心的每個(gè)節(jié)點(diǎn)有 0 個(gè)投票
作為最佳做法,WSFC 的投票總數(shù)應(yīng)為奇數(shù)。如果投票節(jié)點(diǎn)數(shù)目為偶數(shù)(上圖示例拓?fù)?#xff09;,應(yīng)在各自FCI中備機(jī)節(jié)點(diǎn)(避免使用文件仲裁,管理成本高)
(*)發(fā)生dr切換時(shí)
如果主數(shù)據(jù)中心發(fā)生停機(jī),正常切換到DR數(shù)據(jù)中心時(shí),需要對(duì)DR重新設(shè)置仲裁配置。必須向DR數(shù)據(jù)中心的每個(gè)節(jié)點(diǎn)都分配一個(gè)投票,而將主數(shù)據(jù)中心每個(gè)節(jié)點(diǎn)上的投票都設(shè)置為“0”
當(dāng)主數(shù)據(jù)中心恢復(fù)活動(dòng)后,還要再次對(duì)投票進(jìn)行調(diào)整
--查看仲裁設(shè)置
SELECT cluster_name, quorum_type_desc, quorum_state_desc
FROM sys.dm_hadr_cluster;
--查看是否有投票權(quán)
SELECT member_name, number_of_quorum_votes
FROM sys.dm_hadr_cluster_members
order by number_of_quorum_votes desc
?
--完全設(shè)置
?
?
PowerShell
查看所有節(jié)點(diǎn)的當(dāng)前投票設(shè)置
??????? ?Get-ClusterNode | fl NodeName, NodeWeight
將某一節(jié)點(diǎn)的投票設(shè)置為“0”
(Get-ClusterNode "DRNode1").NodeWeight=0
?
?
?
?
?
--注意:
windows故障轉(zhuǎn)移集群+ag環(huán)境時(shí),不能再將ag的自動(dòng)故障轉(zhuǎn)移打開,但可以打開同步模式
由于只能使用windows故障轉(zhuǎn)移,所以避免主機(jī)房節(jié)點(diǎn)失敗,沒有正常切換到主機(jī)房的備機(jī),需要拉掉dr機(jī)房的投票權(quán)(避免故障轉(zhuǎn)移到dr,實(shí)際上搭ag之前需要拉掉overlap的節(jié)點(diǎn),不允許集群不同實(shí)例間出現(xiàn)節(jié)點(diǎn)交叉)
The FCI already has automatic failover configured between the nodes.
The current implementation of AG doe not allow a failover outside of the FCI nodes.
詳見:
https://blogs.msdn.microsoft.com/arvindsh/2012/09/26/alwayson-availability-group-forced-failover-under-the-hood/
轉(zhuǎn)載于:https://www.cnblogs.com/ios9/p/9533431.html
總結(jié)
以上是生活随笔為你收集整理的SQLServer 2014 本地机房HA+灾备机房DR解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进程与线程理论基础
- 下一篇: MySQL 主外键约束与标准SQL不同的