应用 SQL Server 累积更新(CU)
SQL Server难度: 中级耗时: 30–90 分钟在同一主版本内,为已安装的 SQL Server 2022/2025 实例应用累积更新(CU):Linux 上用 dnf/apt,Windows 上用 CU 安装程序以静默(/quiet)方式安装。适用于单服务器,或在 Always On AG 中滚动更新(先 secondary,然后 failover,最后旧 primary;Linux 上通过 Pacemaker)。包含预检查、COPY_ONLY 备份、验证和回滚;最终所有 replica 都处于同一 CU 且运行正常。
主版本升级(例如 2019 → 2022)不在本指南范围内。新安装请参见 Linux 或 Windows 安装指南;AG 的日常运维见 AG 运维。
架构: 1 台服务器或 AG(2+ 个 replica)
开始之前
- 已确定要应用的 CU,并已阅读其 KB 说明(已知问题、先决条件)。…目标:………存储库中最新的 CU…。…安装程序 … …在每个节点上路径相同…位于服务器上…。…
- CU 已先在测试/预生产环境中应用,应用测试已通过。
- 维护窗口已批准,并已通知应用团队。…滚动更新只在 failover 时有短暂中断(几秒钟)。…单服务器上会重启服务(中断几分钟)。…
- 可以创建服务器 snapshot(虚拟机)或操作系统级还原点。
- /var/opt/mssql 和 /opt 下至少有 2 GB 可用空间;备份目录(…)中有足够空间容纳所有数据库的压缩完整备份。
- 服务器可以访问 SQL Server … 存储库(新的 CU 必须已发布到存储库)。
- sqlcmd 步骤以 … 连接。运行脚本前执行:read -rsp '密码: ' SQLCMDPASSWORD; export SQLCMDPASSWORD 和 sudo --preserve-env=SQLCMDPASSWORD bash <script>.sh。
- 系统盘至少有 6 GB 可用空间;没有挂起的 Windows 重启;连接 SQL Server 的 SSMS 和其他工具已关闭。PowerShell 以管理员身份、使用具有 sysadmin 权限的 Windows 帐户打开;sqlcmd 位于 PATH 中。
- AG 运行正常:所有 replica 已连接,数据库已同步,failover 目标(…)为 SYNCHRONOUS_COMMIT。如果只有异步 replica,先把其中一个改为同步。
- Pacemaker 群集正常(pcs status 无错误,fencing 正常工作);AG 资源为 …。
指南阶段
- 预检查 — 记录当前版本并列出存储库中的版本 · 记录当前版本并列出存储库中的版本:… · 预先下载新版本 · 预先下载新版本:… · 检查安装程序和服务器 · 检查安装程序和节点:… …
- 备份与回退点 — 对所有数据库做 COPY_ONLY 备份 · 对所有数据库做 COPY_ONLY 备份 · 创建服务器 snapshot
- 应用 CU(单服务器) — 停止应用连接 · 停止应用连接 · 更新 SQL Server · 静默安装 CU
- 滚动应用 CU(Windows AG) — 暂时关闭自动 failover · 更新其他 secondary:… · 更新 failover 目标:… · 验证已更新的 secondary 处于同步状态 · Failover:让 … 成为 primary · 更新旧 primary:… …
- 滚动应用 CU(Linux AG) — 更新其他 secondary:… · 更新其他 secondary:… · 更新 failover 目标:… · 更新 failover 目标:… · 验证已更新的 secondary 处于同步状态 · Failover:让 … 成为 primary(Pacemaker) …
- 验证 — 验证版本和 CU 级别 · 验证版本和 CU 级别:… · 验证版本和 CU 级别 · 验证版本和 CU 级别:… · 检查 errorlog 中是否有升级错误 · 检查 errorlog 中是否有升级错误 …
- 回滚(如有需要) — 回到之前的版本 · 卸载 CU · 回滚后验证版本 · 回滚后验证版本