AlwaysOn 可用性组(AlwaysOn Availability Groups)是 SQL Server 从 SQL Server 2012 开始引入的一种高可用性与灾难恢复(HA/DR)解决方案。它是对传统的数据库镜像(Database Mirroring)和故障转移群集(Failover Clustering)的增强和替代。
核心概念
- 可用性组(Availability Group)
- 一个可用性组包含一组用户数据库,这些数据库作为一个单元一起进行高可用性管理。
- 每个组必须至少包含一个“主副本(Primary Replica)”和一个“次副本(Secondary Replica)”。
- 副本(Replica)
- 每个副本是一个独立的 SQL Server 实例,可以承载主数据库或副本数据库。
- 主副本:可读可写,承载生产业务写入操作。
- 次副本:通常只读,用于只读查询或备份,也可在主副本故障时接管成为新的主副本。
- 故障转移(Failover)
- AlwaysOn 支持自动故障转移(Automatic Failover)、手动故障转移(Manual Failover),确保业务连续性。
主要功能
- 数据库级别的高可用:不同于传统群集保护整个实例,AlwaysOn 可以只保护选定的用户数据库。
- 多副本支持:最多支持 8 个副本(1 个主副本 + 最多 7 个次副本)。
- 读写分离:主副本负责写入,次副本可用作只读查询,减轻主库压力。
- 日志传输(同步或异步):主库事务日志通过同步或异步方式传送给次副本。
- 跨站点灾备:可在不同数据中心部署,提供灾难恢复能力。
使用场景
- 高可用性:保证数据库在主节点故障时能快速切换到备用节点。
- 负载均衡:通过只读副本承载报表或分析查询,减轻主库压力。
- 灾难恢复:跨数据中心部署,确保发生重大故障时仍能恢复业务。
总结一句话:
AlwaysOn 可用性组就是 SQL Server 提供的一个高可用、可扩展的数据库级 HA/DR 解决方案,可以实现自动故障转移、读写分离和跨数据中心灾备。