温馨提示×

CentOS上SQL Server的更新和维护指南

小樊
37
2025-12-27 14:40:38
栏目: 云计算

CentOS 上 SQL Server 的更新与维护指南

一 更新前准备

  • 全量备份:对所有业务库执行完整备份(示例:BACKUP DATABASE [db] TO DISK=‘…’),并保留可验证的恢复流程。升级前务必在测试环境演练关键业务。
  • 版本与系统核对:确认目标 SQL Server 版本与 CentOS 版本的兼容性;例如 SQL Server 2019CentOS 7.9 上运行稳定,SQL Server 2022 更推荐 CentOS 8/9 或对应 RHEL 8/9 的仓库;在 CentOS 9 上可能需手动补齐依赖(如 openssl、libcurl)。
  • 安装源准备:为目标版本下载并放置正确的 YUM 源(/etc/yum.repos.d/),执行 yum clean all && yum makecache 刷新元数据。
  • 资源与空间:确保磁盘、内存与日志空间充足(SQL Server on Linux 常见最低要求为内存 ≥2GB、磁盘 ≥10GB,生产环境建议更高)。

二 就地升级步骤

  • 切换至维护窗口并停止写入业务,确保备份完成且可恢复。
  • 更新安装源(示例为 SQL Server 2022,请按实际版本调整仓库路径):
    curl -o /etc/yum.repos.d/mssql-server-2022.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2022.repo
    curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
    sudo yum clean all && sudo yum makecache
  • 执行升级:sudo yum update -y mssql-server
  • 重启服务:sudo systemctl restart mssql-server
  • 升级后验证:
    • 连接实例:sqlcmd -S localhost -U sa -P ‘
    • 检查版本:SELECT @@VERSION;
    • 完整性校验:DBCC CHECKDB([YourDatabaseName]);
  • 调整数据库兼容级别(示例:SQL Server 2022160):
    ALTER DATABASE [YourDatabaseName] SET COMPATIBILITY_LEVEL = 160;
    如应用报错,可阶段性回退兼容级别并逐步适配。

三 日常维护要点

  • 补丁与安全:定期执行 sudo yum update -y 获取系统与 SQL Server 安全补丁;变更窗口内评估重启影响。
  • 备份策略:
    • 全量备份:建议每日或按业务 RPO 设定;
    • 差异备份:在全量之间按频率执行;
    • 事务日志备份:高频执行(如每 5–15 分钟)并保留足够历史以满足恢复点目标(RPO);示例:BACKUP LOG [db] TO DISK=‘…’ WITH FORMAT;
  • 索引与统计:定期重建/重组碎片化索引,更新统计信息,保持执行计划质量。
  • 监控与性能:利用 DMV(如 sys.dm_exec_requests、sys.dm_os_performance_counters)与 Profiler 定位瓶颈;按需调整内存、MAXDOP、TempDB 配置。
  • SQL Server Agent:用于自动化备份、索引维护、统计更新与清理任务;在 CentOS 7 上可安装并启用 mssql-server-agent 服务,通过 systemctl 管理。

四 日志与故障排查

  • 服务状态与日志:
    • 服务:sudo systemctl status mssql-server
    • 错误日志:tail -f /var/opt/mssql/log/errorlog(安装/升级失败优先查看)
    • 系统日志:journalctl -u mssql-server
  • 网络连通与防火墙:
    • 开放端口:sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent && sudo firewall-cmd --reload
    • 连通性:telnet 1433 或 ss -lntp | grep 1433
  • 常见问题速解:
    • 依赖问题(如 CentOS 9):sudo yum install -y openssl libcurl
    • 权限问题:chown -R mssql:mssql /var/opt/mssql
    • 兼容性问题:临时降低数据库兼容级别,完成应用适配后再提升。

五 安全加固清单

  • 身份与权限:启用强密码策略,遵循最小权限原则,禁用不必要的登录与 Guest 账户。
  • 网络与端口:仅开放必要端口(默认 1433),限制来源 IP,禁用不必要服务。
  • 数据加密:对敏感数据启用 TDE(透明数据加密),对列级敏感信息使用 Always Encrypted
  • 审计与合规:启用审计与登录审计,集中收集与分析日志(如 rsyslog/journald 或 ELK)。
  • SELinux:如启用,确保策略允许 SQL Server 网络与文件访问。

0