预算有限只能用 SQL Server 标准版?3 套高可用方案,2 台机器就能落地

预算有限只能用 SQL Server 标准版?3 套高可用方案,2 台机器就能落地

相信很多人会碰到下面的情况,公司预算有限只能使用SQL Server标准版,还想要自动故障转移、不丢数据、业务少停、少量机器 ,基于2~3台服务器就能落地。

SQL Server 2025 只剩下企业版,标准版,精简版

根据官方文档,本文整理了3套官方支持、可自动切换的高可用方案,覆盖工作组/域环境、有无共享存储 场景,直接照着选就行。

标准版可选的高可用方案
  • SQL Server 2016 SP1及以后,支持基本可用性组(Basic AG)
  • 支持数据库镜像(高安全模式)
  • 支持故障转移群集实例(FCI)

方案一:SQL Server故障转移群集(FCI)

定位 :实例级高可用,整库实例自动切换

节点 :2个数据库节点 + 1台AD域控

环境要求 :Windows域、必须共享存储

优势

  • 实例级高可用,所有系统库+用户库+登录用户+作业+链接服务器一起切换
  • 标准版直接支持
  • 切换干净,应用几乎无感知

局限

  • 部署Windows域
  • 依赖共享存储,存在存储单点
  • 不支持Windows工作组/多域群集
  • 需要 Kerberos 进行AD身份验证
  • 不能跨操作系统平台

部署分类:

1. 不加见证

依靠 WSFC集群的 Auto Tie Breaker + Last Man Standing 机制,2 节点集群即使不加见证,依然可以实现自动故障转移,并且即使只剩下最后一票,集群角色依然存活。整个集群只有 1 个有效投票 ,由当前主节点持有。

自动故障转移过程

(1). 主节点(当前持有投票的节点)宕机

  • 集群检测到主节点离线
  • 动态仲裁将唯一投票自动转移 到备用节点
  • 业务短暂中断
  • 备用节点获得投票,集群保持存活
  • 备用节点自动升级为新的主节点,承载 SQL Server FCI 实例
  • 业务通过虚拟网络名(VNN)自动连接到新主节点

(2). 备用节点(无投票节点)宕机

  • 主节点仍持有唯一投票,集群仲裁状态正常
  • SQL Server FCI 继续在原主节点运行
  • 业务完全不受影响
  • 待备用节点恢复后重新加入集群即可
2. 加见证

可选择:文件共享见证(放在AD域控)、磁盘见证、云见证

2 数据库节点 + 1 个见证, 形成 3 个奇数投票 ,满足 WSFC 标准仲裁规则和自动故障转移条件。

自动故障转移过程

(1). 原主节点宕机

  • 剩余 1 个节点 + 1 个见证 = 2/3 投票,达到仲裁多数
  • 集群判定主节点失效,启动故障转移
  • 业务短暂中断
  • 备用节点自动接管共享存储与虚拟 IP
  • SQL Server FCI 在备用节点上线,完成自动故障切换
  • 应用通过 VNN 无缝连接到新主节点

(2). 原备用节点宕机

  • 主节点 + 见证 = 2/3 投票,仲裁正常
  • 业务继续运行在主节点,无中断
  • 备用节点修复后重新加入集群并同步状态

(3). 见证节点/见证资源异常

  • 2 个数据库节点仍可依靠动态仲裁维持运行
  • 不影响当前主节点业务
  • 恢复见证后自动重新参与仲裁

方案二:Always On 基本可用性组

定位 :库级高可用,同步复制+自动切换,可以跨操作系统平台

版本 :SQL Server 2016 SP1+

前提 :基本可用性组的副本支持同步提交模式。

环境要求 :工作组和Windows域均可、不需要共享存储

节点架构(工作组 和 Windows域 二选一)

  1. 工作组环境(Windows Server 2016 或以上)分为 不加见证 和 加见证或者Linux环境

(1). 不加见证 (两台机器)

  • 2个数据库节点
  • 工作组环境优先用SQL Server身份验证
  • 自动故障转移过程和集群角色存活情况 跟SQL Server故障转移群集(FCI)方案的不加见证部署一样,依靠 WSFC集群的 Auto Tie Breaker + Last Man Standing 机制
  • Linux 版的SQL Server Always On额外支持一个仅配置副本

(2). 加见证 (两台机器)

  • 2个数据库节点 + 1 个见证, 形成 3 个奇数投票 ,满足 WSFC 标准仲裁规则和自动故障转移条件。
  • 见证:云见证 / 磁盘见证(工作组不支持**【文件共享见证FSW】** ),满足仲裁
  • 工作组环境优先用SQL Server身份验证

(3). 不加见证,3个WSFC节点 (三台机器)

  • 2个数据库节点 + 1个纯WSFC节点(共3个WSFC节点,第三个节点无需安装SQL Server数据库实例)
  • 3个WSFC节点 形成 3 个奇数投票 ,满足 WSFC 标准仲裁规则和自动故障转移条件。
  1. Windows域环境 (三台机器)
  • 2个数据库节点 + 1台AD域控
  • 见证:文件共享见证(FSW)可放在AD域控,满足仲裁,也可以使用云见证 / 磁盘见证
  • 2个数据库节点 + 1 个见证, 形成 3 个奇数投票 ,满足 WSFC 标准仲裁规则和自动故障转移条件。

局限

  • 仅支持1主1辅 共2个副本
  • 辅助库不可读写
  • 一个可用性组只支持一个数据库 ,但是可以创建多个基本可用性组以支持多个数据库,数据库数量多,工作量大,每个数据库都是独立切换

创建语句示例

  • 可在任意两台 SQL 2016 标准版或以上实例创建,创建时必须指定两个副本。

  • 使用 T‑SQL 创建时,执行 CREATE AVAILABILITY GROUP 并指定 WITH BASIC 选项(默认为 ADVANCED)。

  • SSMS 17.8 及以上版本支持通过 UI 创建

    CREATE AVAILABILITYGROUP [BasicAG]
    WITH (
    BASIC,
    AUTOMATED_BACKUP_PREFERENCE = PRIMARY,
    DB_FAILOVER = ON,
    REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0
    )
    FORDATABASE [YourDB]
    REPLICA ON
    N'SQLNode1'WITH (
    ENDPOINT_URL = N'TCP://SQLNode1:5022',
    FAILOVER_MODE = AUTOMATIC,
    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT
    ),
    N'SQLNode2'WITH (
    ENDPOINT_URL = N'TCP://SQLNode2:5022',
    FAILOVER_MODE = AUTOMATIC,
    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT
    );
    GO

方案三:数据库镜像(高安全模式)

定位 :库级高可用,同步复制+自动切换,轻量,可以跨操作系统平台

节点 :3个(主体+镜像+见证)(三台机器)

版本 :SQL Server 2005 +

环境要求 :工作组和Windows域和Linux环境均可、不需要共享存储,不需要WSFC,使用Windows域(见证实例放在AD域控)

优势

  • 架构最轻,不用WSFC、不用Windows域
  • 高安全模式,数据零丢失

局限

  • 需要为每个数据库都搭建镜像,数据库数量多,工作量大
  • 每个数据库都是独立切换,不能像Always On那样整个可用性组整体切换
  • 镜像只支持高安全模式,不支持高性能模式

自动故障转移条件

自动故障转移由见证节点裁决

标准版高可用方案快速选型表

方案 节点数 Windows域/工作组 存储 自动切换 需要SQL 2016+ 只剩下最后一票,集群角色是否存活 从节点是否可读 支持操作系统 需要Win 2016+
基本可用性组 2~3个 均可 本地磁盘 ✅ 必须(2016 SP1及以上) 视见证而定:不加见证 ✅;加见证 ❌ ❌ 不可读(受标准版限制) Windows、Linux 工作组环境必须;域环境不需要
数据库镜像(高安全模式) 3个 均可 本地磁盘 ✅(需见证节点裁决) ❌ 不需要(2005及以上即可) ✅ 存活(主体库可独立运行) ❌ 不可读(镜像库处于还原中,无法访问) Windows、Linux ❌ 不需要
FCI故障转移群集 3个 Windows域 共享存储 ❌ 不需要 视见证而定:不加见证 ✅;加见证 ❌ ❌ 不可读(备用节点SQL服务停止) 仅 Windows ❌ 不需要

选型总结

本文针对SQL Server 标准版用户,在仅 2~3 台服务器的有限资源下,系统梳理了 3 种官方支持、可实现自动故障转移、数据零丢失的数据库高可用方案,全面覆盖域 / 工作组、有无共享存储等各类业务场景,为预算有限的生产环境提供可直接落地的高可用选型与参考。

参考文档

https://learn.microsoft.com/zh-cn/sql/sql-server/editions-and-components-of-sql-server-2025?view=sql-server-ver17\&preserve-view=true

https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/basic-availability-groups-always-on-availability-groups?view=sql-server-ver17

https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/windows-server-failover-clustering-wsfc-with-sql-server?view=sql-server-ver17

https://techcommunity.microsoft.com/blog/failoverclustering/workgroup-and-multi-domain-clusters-in-windows-server-2016/372059

https://learn.microsoft.com/zh-cn/sql/sql-server/failover-clusters/install/sql-server-failover-cluster-installation?view=sql-server-ver17

本文版权归作者所有,未经作者同意不得转载。

相关推荐
炸炸鱼.6 天前
使用 HAProxy 搭建高可用 Web 负载均衡集群
web·haproxy·高可用
炸炸鱼.7 天前
LVS+Keepalived 高可用集群部署手册
lvs·keepalived·高可用
志凌海纳SmartX7 天前
详解超融合如何让RDMA跨网卡高可用,让高性能业务更可靠
高可用·超融合·rdma·smartx
zs宝来了19 天前
Redis 哨兵机制:Sentinel 原理与高可用实现
redis·sentinel·高可用·源码解析·哨兵
人间打气筒(Ada)25 天前
go:如何保障分布式系统的高可用性?(下篇)
golang·高可用·超时设计·限流设计·接口缓存·重试设计·无状态设计
Thomas.Sir1 个月前
深入剖析 Redis 的三种集群方式以及实战配置
redis·分布式·集群·高可用
FJW0208141 个月前
LVS+Keepalived+HAProxy双主高可用负载均衡集群
运维·负载均衡·lvs·高可用
feng68_1 个月前
Discuz! X5 高性能+高可用
linux·运维·服务器·前端·后端·高性能·高可用
cyber_两只龙宝2 个月前
Keepalived+LVS--实现IPVS的高可用+高性能的双主双业务架构详细配置流程及解析
linux·运维·集群·lvs·高性能·keepalived·高可用