AlwaysOn 可用性组(AlwaysOn Availability Groups)是 SQL Server 从 SQL Server 2012 开始引入的一种高可用性与灾难恢复(HA/DR)解决方案。它是对传统的数据库镜像(Database Mirroring)和故障转移群集(Failover Clustering)的增强和替代。

核心概念

  1. 可用性组(Availability Group)
    • 一个可用性组包含一组用户数据库,这些数据库作为一个单元一起进行高可用性管理。
    • 每个组必须至少包含一个“主副本(Primary Replica)”和一个“次副本(Secondary Replica)”。
  2. 副本(Replica)
    • 每个副本是一个独立的 SQL Server 实例,可以承载主数据库或副本数据库。
    • 主副本:可读可写,承载生产业务写入操作。
    • 次副本:通常只读,用于只读查询或备份,也可在主副本故障时接管成为新的主副本。
  3. 故障转移(Failover)
    • AlwaysOn 支持自动故障转移(Automatic Failover)、手动故障转移(Manual Failover),确保业务连续性。

主要功能

  • 数据库级别的高可用:不同于传统群集保护整个实例,AlwaysOn 可以只保护选定的用户数据库。
  • 多副本支持:最多支持 8 个副本(1 个主副本 + 最多 7 个次副本)。
  • 读写分离:主副本负责写入,次副本可用作只读查询,减轻主库压力。
  • 日志传输(同步或异步):主库事务日志通过同步或异步方式传送给次副本。
  • 跨站点灾备:可在不同数据中心部署,提供灾难恢复能力。

使用场景

  1. 高可用性:保证数据库在主节点故障时能快速切换到备用节点。
  2. 负载均衡:通过只读副本承载报表或分析查询,减轻主库压力。
  3. 灾难恢复:跨数据中心部署,确保发生重大故障时仍能恢复业务。

总结一句话:
AlwaysOn 可用性组就是 SQL Server 提供的一个高可用、可扩展的数据库级 HA/DR 解决方案,可以实现自动故障转移、读写分离和跨数据中心灾备。