AlwaysOn “是SQL Server 2012中引入的 “高可用性” 和 “灾难恢复” 的功能。
它由两项主要技术组成:AlwaysOn FCI(Failover Cluster Instance)和AlwaysOn AG(Availability Groups)。
以下是对上述2个功能的概述。
名称 | 概要 |
---|---|
AlwaysOn FCI | 提供 “高可用性” 的功能,对应于前一个版本的 “故障转移” 功能。多个节点访问 “共享磁盘”,如果一个节点(服务器)发生故障,它将切换到另一个节点继续处理。这与上一版本的 “故障转移 “功能相对应。
WSFC监控服务器之间的网络和磁盘I/O,当检测到故障时,服务被重新启动或实例被切换(故障转移)。 |
AlwaysOn AG | 一个用于高可用性和灾难恢复的功能,相当于以前版本的镜像(mirroring)功能。自SQL Server2012提供的功能,允许多个SQL Server组(可用性组)虚拟成一个。只要其中一个组正常运作,业务将继续进行。
提供 “数据复制” 功能,在没有共享磁盘的情况下可创建集群。这相当于以前版本中的 “Mirroring”。 数据复制可以是同步的,以提高同一数据中心内的可用性(HA),也可以是异步的,以提供一个远程灾难环境(DR)。 |
AlwaysOn FCI
AlwaysOn AG
AG和FCI的区别
应该选择哪个方案,哪个方案能更好的解决问题,取决于实际应用环境的条件,例如网络延迟,磁盘容量等因素。
项目 | Always on FCI | AlwaysOn AG |
---|---|---|
WSFC | 运行在WSFC(WindowsServerFailoverCluster)上,每个节点必须属于同一个WSFC。 | 运行在WSFC,从SQL Server 2016开始,可在不同的WSFC上设置 “可用性组”。 |
数据损失 | 无(共享磁盘) | 无(同步提交模式时) |
自动故障转移 | 是 | 是(自动故障转移模式) |
对客户端是否透明 | 是,自动重连接到相同IP的另一个结点 | 是 |
停机时间 | 约等于SQL Server服务重启的时间 + 数据库恢复时间 | 约等于数据库恢复时间 |
保护级别 | 实例级 因数据库文件是共享,切换在实例级别发生。 |
数据库级(AG单位发生FailOver) 与FCI相比,更小的保护单位。之前的Mirroring需要对实例中的每一个数据库进行配置,而在AG允许可用性组中进行分组,也可将所有数据库放到一个组中(与Mirroring相比简化了配置)。 |
数据文件 | 共享 | 每个节点独立维护 |
Secondary状态 | Standby | Active/Standby |
备用数据副本可读 | 否 | 是 |
数据恢复模式 | 无限制 | 完全模式(FullMode) |
Standard版限制 | 仅限2个节点 | SQLServer2016开始提供Basic Availability Group(基本可用性组),既可用性组的限制版。
✓仅限2个节点(Primary/Secondary) |
系统数据库 | 同步(共享磁盘) | 系统数据库是非同步对象 |
优势 | 与 “AlwaysOn AG”相比 1. 不需要指定恢复模式 (AlwaysOn AG需要 “完整模式”) 2. 存储空间消耗较少(因使用共享磁盘) 3. 易于排除故障(非分布式架构) |
与 “AlwaysOn FCI” 相比 1. 更小的保护单位(数据库级别) 2. 支持磁盘故障(可使用磁盘冗余) 3. 可用于灾备方案(使用mirroring功能,异步同步至远程服务器) 缺点是,mirroring需要高性能网络和低延迟。 |
AlwaysOn AG(可用性组)的相关功能
SQLServer2016开始,作为AlwaysOn AG(可用性组)的相关功能,可使用 “AlwaysOn BAG(基本可用性组)” 和 “AlwaysOn DAG(分布式可用性组)”。
特别是 “AlwaysOn BAG(基本可用性组)” 可在Standard版中使用,也可有限地使用Enterprise版的 “AlwaysOn AG(可用性组)” 。
名称 | 说明 |
---|---|
AlwaysOn BAG(Basic Availability Group) | 在SQLServer 2016标准版中引入的一项功能,允许有限地使用Enterprise版的 “AlwaysOn AG”,相当于以前版本中的 “Mirroring” 功能。
复制的数量被限制在2个(Primary和Secondary) |
AlwaysOn DAG(Distributed Availability Group) | 该功能在SQLServer 2016中引入,允许设置一个特殊的AG(可用性组),可跨越两个独立的可用性组(换句话说,一个可用性组,可绑定可用性组)。
将生产环境和灾备环境放在不同的WSFC/可用性组中,并将它们合并为一个 “分布式可用性组”,可以将生产环境和灾备环境从网络中分离出来,减少灾备环境影响生产环境性能的风险。 |
AlwaysOn DAG