SQL Server Always On Availability Group (Windows, WSFC)
SQL Server难度: 高级耗时: 90–150 分钟在已安装 SQL Server 2022 的 Windows 服务器上搭建 Always On Availability Group:Windows Server Failover Cluster (WSFC) 及仲裁见证(文件共享 / cloud witness)、启用 Always On、mirroring endpoint 及权限、使用 automatic seeding 的 AG、listener、同步/异步 replica、可读 secondary、failover 测试和监控。完成后,您将得到一个应用程序通过 listener 名称连接、已经过 failover 测试的 AG。
先用 SQL Server Windows 安装 以相同的版本和路径安装每个节点。已有 AG 的日常运维和故障(延迟、强制 failover、添加数据库)请参阅 AG 运维;Linux 上使用 Pacemaker 的 AG 请参阅 Always On AG (Linux)。
架构: 2–9 个 Windows 节点 (WSFC) + 见证 (witness)
开始之前
- 所有节点上已安装 SQL Server 2022,版本和 CU 相同,实例名相同 (…),数据/日志盘符和路径相同(安装菜单中的 SQL Server 2022 Windows 安装)。Edition:Enterprise(Standard 仅支持 Basic AG:2 个 replica,1 个数据库)。
- 所有节点运行相同版本的 Windows Server,位于同一个域 (…)、已更新且在同一子网中。每个节点使用静态 IP;DNS 记录正确。
- 执行安装的帐户在所有节点上是本地管理员,并在 SQL Server 中是 sysadmin。在 AD 中有创建 … 和 … 计算机对象的权限(或已预先创建这些对象并授予 CNO Full Control)。
- 已预留两个未使用的 IP:群集 …,listener …(DNS 中尚无记录)。
- 见证共享 … 位于节点之外的服务器上;共享和 NTFS 权限:为 …\…$ 授予 Full Control(也可以在创建群集后授予)。
- Azure Storage 帐户 …(Standard,LRS/ZRS)已就绪,节点可以通过 443 访问 .blob.core.windows.net。已拿到访问密钥 (access key)。
- …… 个节点(奇数):没有见证也能形成仲裁多数;但仍建议使用见证。…… 个节点(偶数):没有见证时,丢失一个节点可能导致群集停止。请选择见证。…
- 节点之间开放的端口:SQL …/TCP,endpoint …/TCP,群集 3343/TCP-UDP,RPC 135/TCP + 动态 RPC,SMB 445/TCP。
- 每个节点上已安装 SqlServer PowerShell 模块(Enable-SqlAlwaysOn 需要)。
- 要加入 AG 的数据库(………, ……)存在于第 1 个节点上,且是用户数据库(不是系统数据库);secondary 节点上没有同名数据库。
- 为服务帐户 … 在每个节点上注册了 MSSQLSvc/<node>.…:… SPN(endpoint 和 listener 连接使用 Kerberos;listener 也要添加 MSSQLSvc/….…:…)。
- 维护窗口已批准;数据库有最新备份,节点已做快照。
指南阶段
- Windows Server Failover Cluster — 安装故障转移群集功能 · 验证群集 (Test-Cluster) · 创建群集 · 配置仲裁见证(文件共享) · 配置仲裁见证 (cloud witness) · 检查群集状态
- 在 SQL Server 中启用 Always On — 启用 Always On · 为服务帐户创建登录名 · 创建 mirroring endpoint · 在防火墙中开放 SQL 和 endpoint 端口 · 测试对 endpoint 的访问
- Availability Group — 将数据库切换为 FULL 恢复模式并做完整备份 · 创建 AG (primary) · 将 secondary 加入 AG · 监控 automatic seeding · 创建 listener · 配置 read-only routing(可读 secondary)
- 验证和 failover 测试 — 检查 AG 健康状态 · 通过 listener 测试连接 · 计划内 failover 测试:让 … 成为 primary · 切回:让 … 重新成为 primary · 从群集视图检查
- 安装后与监控 — 同步登录名、作业和其他服务器对象 · 确定备份策略 · 用 DMV 查询监控 AG · 为角色切换定义 Agent alert