Skip to content

参考文档

  1. https://docs.microsoft.com/zh-cn/sql/database-engine/availability-groups/windows/configure-read-only-routing-for-an-availability-group-sql-server?view=sql-server-2017
  2. https://learn.microsoft.com/zh-cn/sql/database-engine/availability-groups/windows/getting-started-with-always-on-availability-groups-sql-server?view=sql-server-2017
  3. ALTER AVAILABILITY GROUP (Transact-SQL): https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-availability-group-transact-sql?view=sql-server-ver15

1.高可用性技术

1. 复制Replication(快照、事务、合并)

应用场景:     负载均衡、提供副本读,写操作。

分区将历史数据复制到其它表中。

授权,将数据提供它人使用。

数据合并。

故障转移。

优点:

实现简单。

数据同时同步,几乎达到镜像。

可以实现对某些表,或表数据过滤进行复制。

缺点:

不适合做高可用,因为整个库复制影响性能。

不支持故障自动切换。

要求:

必须有主键的表才能做复制

2.日志传送log shipping(备份-->复制-->恢复)

应用场景:     多台主从服务器定时备份同步。

负载均衡、提供副本只读。   优点:     实现简单。

要求:     必须是完整备份模式。

主服务器、辅助服务器、监视服务器的备份文件夹必须有读写权限。

sql agent代理必须启动

3.镜像

应用场景:

​ 要求高服务可用性。

​ 要求实现自动故障转移。

​ 确保数据的完整。

​ 优点:

​ 根据业务可实现同步和异步镜像。

​ 快速的故障转移恢复。低硬件成本。

​ 要求:

​ 主体服务器。

​ 镜像服务器。

​ 见证服务器

4.故障转移群集

应用场景:

硬件故障转移。

服务故障转移。

人工故障或各种其它原因等。

优点:

根据业务进行灵活的群集拓扑结构

快速且自动故障转移

缺点:

群集非活跃节点浪费硬件资源

群集节点间共用的共享存储,仍然存在潜在的单点故障隐患。

没有负载能力,不是提升性能的技术。

​ 要求

​ 基于windows故障转移

5.alway on 优点

支持最多5个可用性副本

支持替代可用性模式(同步,异步)

支持集中形式的可用性组故障转移:自动故障转移、手动故障转移、强制故障转移

支持2种辅助功能,只读副本访问/辅助副本执行备份操作

支持每个可用性组的可用性侦听器

支持灵活的故障转移策略以便更好地控制可用性故障转移

支持用于避免页损坏的自动页修复

支持加密和压缩

提供了一组集成的工具来简化部署和管理可用性组

5.1故障转移灵活设置

副本可用性模式和故障转移模式设置
A同步提交模式(自动故障转移)
B同步提交模式(自动故障转移)
C同步提交模式(仅限计划的手动故障转移)
D异步提交模式(仅限强制故障转移)

6.选择alway on原因

7.节点

7.1两个节点

7.3三个节点

8.多网

小结:

单实例激活alwaysOn是为了以后扩张节点时不造成停机的预留手段

4个节点、5个节点的情况都属于以上两种基础解决方案

如果准备多节点情况下,需要明确是否有使用MSSQL的其他服务如:Analysis Service、Intergration Service等,如果有且需要共享这些服务器,则将这部分Feature独立出alwaysOn所在实例,新建其他实例使用MSSQL Cluster同时为这些服务提供Failover能力

建议不在Hyper-V Host构建Live Migration 的VM中部署AlwaysOn,至少不使用该Host Cluster作为AlwaysOn Cluster,当Host Cluster 发生Failover时,可能导致VM中AlwaysOn漂移