SQLServer 2014 本地机房HA+灾备机房DR解决方案


SQLServer 2014 主数据中心HA+灾备机房DR解决方案node

 

SQLServer 2008 的时候使用 local WSFC+DR Mirror方式,对象是单数据库web

两个单独的 WSFC 上使用两个 FCI数据库

每一个WSFC有两个以上的节点windows

数据库镜像容许单独 WSFC 上的多个 FCI 使用相同的实例名称异步

 

 

SQLServer 2012/2014 的时候使用 local WSFC+DR AG方式,对象是可用性组(通常为整个实例)ide

单个 WSFC 上使用两个 FCIspa

单个 WSFC 含有四个以上节点,每一个FCI(failover cluster instance)有两个以上的节点3d

在同一个 WSFC 内,两个 FCI 必须使用不一样的实例名称,例如,使用“INST_A”做为主 FCI 的实例名称,使用“INST_B”做为 DR FCI 的实例名称rest

 核心业务dr使用集群日志

 

非核心业务dr使用单实例

 

 

(*)因为跨机房的WSFC,共享存储的注意事项

每一个 FCI 都有本身的共享存储(其余数据中心内的节点没法访问),称做非对称存储

两个 FCI 中的数据库文件和事务日志文件也应该使用彻底相同的文件路径,磁盘应使用彻底相同的驱动器号(避免搭建ag,还原辅助副本的时候使用restore with move/建立文件组或者日志操做的失败)

每一个FCI中,SQL Server 实例的 FCI 故障转移是自动执行的;AG的故障转移模式必须是手动,AG同步模式建议异步提交

 

(*)因为跨机房的WSFC,仲裁投票、仲裁模型 的注意事项

默认状况下,故障转移群集中的每一个节点都具备投票( 节点的 NodeWeight 属性),引入一个修补程序 (http://support.microsoft.com/kb/2494036(用于将 1 个投票分配给 WSFC 中的特定节点,将 0 个投票分配给其余一些节点),拓扑中的每一个节点上都必须安装此修补程序

投票方案:

  • 主数据中心的每一个节点有 1 个投票
  • DR数据中心的每一个节点有 0 个投票

做为最佳作法,WSFC 的投票总数应为奇数。若是投票节点数目为偶数(上图示例拓扑),应在各自FCI中备机节点(避免使用文件仲裁,管理成本高)

(*)发生dr切换时

若是主数据中心发生停机,正常切换到DR数据中心时,须要对DR从新设置仲裁配置。必须向DR数据中心的每一个节点都分配一个投票,而将主数据中心每一个节点上的投票都设置为“0”

当主数据中心恢复活动后,还要再次对投票进行调整

--查看仲裁设置

SELECT cluster_name, quorum_type_desc, quorum_state_desc
FROM sys.dm_hadr_cluster;

--查看是否有投票权

SELECT member_name, number_of_quorum_votes
FROM sys.dm_hadr_cluster_members
order by number_of_quorum_votes desc

 

--彻底设置

 

 

PowerShell

查看全部节点的当前投票设置

         Get-ClusterNode | fl NodeName, NodeWeight

将某一节点的投票设置为“0

   (Get-ClusterNode "DRNode1").NodeWeight=0

 

 

 

 

 

--注意:

windows故障转移集群+ag环境时,不能再将ag的自动故障转移打开,但能够打开同步模式

因为只能使用windows故障转移,因此避免主机房节点失败,没有正常切换到主机房的备机,须要拉掉dr机房的投票权(避免故障转移到dr,实际上搭ag以前须要拉掉overlap的节点,不容许集群不一样实例间出现节点交叉)

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/

相关文章
相关标签/搜索