SQLServer AlwaysOn FCI与AG组合

时间:2021-09-18 06:00:05

在搭建了  AlwaysOn FCI 后,MSSQL 拥有了实例界别的高可用了。但是数据访问仍然存储在单个节点中,异地容灾还无法高可用。


如下图,在搭建 AlwaysOn FCI与AG组合 前,先搭建 Failover Cluster Instance(FCI):

SQLServer AlwaysOn FCI与AG组合


若此时磁盘损坏,或者双节点都宕机,这就需要异地的灾备中心上线了。为了保证异地的高可用,在本地高可用 FCI 上,搭建 alwayson 可用性组。

架构如下图:

SQLServer AlwaysOn FCI与AG组合

注意:在配置可用性组时,所有节点都加入同一个群集中。使用的是 FCI 的虚拟IP。


异地节点的计算机先加入域,配置网络,配置防火墙,安装故障转移工具,安装数据库实例,设置账号等。

在现有的群集中,添加节点:

SQLServer AlwaysOn FCI与AG组合

SQLServer AlwaysOn FCI与AG组合

验证添加完成后,节点 “server112” 则添加到群集中。

接下来激活 alwayson 可用性组,在FCI的主节点实例中激活,新的节点也要激活,都需要重启一次实例。

SQLServer AlwaysOn FCI与AG组合

右键群集中 SQL server 应用属性,在首先所有者中,不需选择新增的节点。因为此实例是故障转移实例,不必把AG的节点选中。

SQLServer AlwaysOn FCI与AG组合

现在好了,这样像正常一样配置可用性组了!访问时使用的是 FCI 的虚拟IP连接到群集实例中。

先在FCI的主节点实例中备份数据库,还原到新增的节点 (如 server112),按正常方法配置AG,完成如下。

SQLServer AlwaysOn FCI与AG组合

此时群集中的实例如下:

SQLServer AlwaysOn FCI与AG组合

搭建完成!!

在开放上线前测试一遍,进行FCI间的故障转移,注意别转到AG节点112(当然也会报错)

SQLServer AlwaysOn FCI与AG组合

在数据库内部,进行一次来回的 AG 故障转移:

SQLServer AlwaysOn FCI与AG组合

确定没什么问题,那就上线吧!

此外,还可以在AG 的单节点中再配置 FCI,当然AG只能在一个节点中读写,其他可设置只读。

SQLServer AlwaysOn FCI与AG组合


参考:Adding SQL Server AlwaysOn Availability Groups to existing Failover Clusters