Ubuntu上SQL Server的更新与维护策略
一 更新策略与版本节奏
- 采用微软官方的 APT 仓库进行更新,按版本选择对应仓库:mssql-server-2022、mssql-server-2019、mssql-server-2017;如需尝鲜,可使用 mssql-server-preview(SQL Server 2025 预览版)。CU(累积更新)与 GDR(安全/重要修复)均在同一仓库内发布,CU 为版本内滚动修复,GDR 与 CU 同仓共存。升级主版本需切换到对应主版本仓库后再安装。
- 建议节奏:生产环境以CU 为周期进行计划内更新(如按季度/月度窗口),同时及时应用 GDR以覆盖关键安全修复;跨主版本升级需单独评估与演练。
二 标准更新流程
- 准备与评估
- 完整备份所有数据库(含系统库)、验证备份可用;检查磁盘空间、应用与驱动依赖、变更窗口与回滚方案;如启用高可用(如 Always On 可用性组),按集群/AG 流程进行维护。
- 执行更新
- 更新索引与统计信息(减少回放差异)、检查/停止相关应用连接;在 Ubuntu 上执行:sudo apt-get update && sudo apt-get install -y mssql-server;如需指定版本,使用 apt 的版本选择语法安装对应 CU 包。
- 验证与回滚
- 重启服务后,使用 SELECT @@VERSION、@@BUILD 等确认版本与构建号;抽查关键业务功能与作业;若异常,按备份与快照回滚,或降级到已验证的旧 CU 包。
三 主版本升级与跨仓库管理
- 升级路径
- 备份与验证、规划停机;将 APT 源切换到目标主版本的 mssql-server- 仓库(如从 2019 升到 2022,切换到 mssql-server-2022);执行 sudo apt-get update && sudo apt-get install -y mssql-server 完成就地升级;验证实例与数据库可用性,必要时重建/迁移登录、链接服务器、作业等对象。
- 注意事项
- 跨主版本升级通常不可逆,务必在测试环境充分验证;升级前确认 Ubuntu LTS 版本与 SQL Server 版本的兼容矩阵;如需回退,建议基于备份恢复到旧实例,而非依赖包降级。
四 日常维护要点
- 备份与恢复
- 建立覆盖完整备份 + 差异备份 + 事务日志备份的策略;定期脱机/异地存放与恢复演练,验证 RPO/RTO。
- 统计信息与索引
- 定期更新统计信息(UPDATE STATISTICS)、重建/重组碎片化索引,保持执行计划质量。
- 监控与容量
- 监控错误日志、阻塞与长事务、CPU/内存/磁盘 IO;关注数据/日志文件增长与空间阈值,提前扩容。
- 安全与网络
- 及时应用 OS 与 SQL Server 安全补丁;仅开放必要端口(默认 1433/TCP),限制来源 IP,启用强口令与最小权限。
五 自动化与变更管控
- 使用 cron/作业调度执行备份与维护任务;在 APT 层面使用 unattended-upgrades 进行安全更新(建议仅对 security 源启用,生产 CU 走变更窗口);所有更新与升级纳入变更管理流程,包含发布评审、回滚预案、影响评估与演练记录。