温馨提示×

Ubuntu上SQL Server兼容性问题解析

小樊
41
2025-12-08 05:14:39
栏目: 云计算

Ubuntu 上 SQL Server 兼容性问题解析

一 支持矩阵与系统要求

  • 支持版本与操作系统
    • SQL Server 2017:支持 Ubuntu 16.04 及更高版本
    • SQL Server 2019:支持 Ubuntu 18.04 及更高版本
    • SQL Server 2022:支持 Ubuntu 20.04 及更高版本
  • 硬件与文件系统
    • 处理器:x64
    • 内存:至少 2 GB
    • 文件系统:推荐 EXT4XFS
    • 磁盘空间:建议预留 ≥6 GB
  • 版本选择建议:新部署优先选择 Ubuntu 20.04/22.04 LTS 搭配 SQL Server 2019/2022,可获得更长的支持周期与更少的兼容性问题。

二 常见兼容性问题与修复

  • 共享库缺失(如:libssl、liblber)
    • 现象:启动或客户端连接时报错,例如 “error while loading shared libraries: libssl.so: cannot open shared object file”。
    • 处理:
      • 使用发行版包管理器安装 OpenSSL 开发包(如 openssl-devel 或发行版等效包)。
      • 或在 /var/opt/mssql/mssql.conf 中调整 TLS 配置以适配现有 OpenSSL:
        • [network]
        • tlsprotocols = 1.3,1.2
        • tlsciphers = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA
  • 混合 CPU 架构导致实例无法启动(第 12 代 Intel 及以上)
    • 现象:在 Linux 主机上启动失败,断言类似 “result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()”。
    • 处理:在 BIOS 禁用效率核心(E-cores);在 容器/WSL/Hyper-V 环境下不受影响。
  • PolyBase 网络加密限制(SQL Server 2025 预览 RC0)
    • 现象:启用 PolyBase 网络加密后失败。
    • 处理:将 PolyBase 网络加密设置为 0
      • EXEC sp_configure @configname = ‘polybase network encryption’, @configvalue = 0;
      • RECONFIGURE WITH OVERRIDE;
  • 本地 ONNX 模型(SQL Server 2025 预览 RC0)
    • 现象:在 Linux 上 CREATE EXTERNAL MODEL 使用本地 ONNX 模型不受支持。
    • 处理:改用受支持平台或在 Windows 上执行相关模型托管。

三 安装与网络连通性要点

  • 安装步骤(以 Ubuntu 20.04 + SQL Server 2022 为例)
    • 导入 GPG 密钥:curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    • 添加软件源:sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)”
    • 安装与配置:sudo apt-get update && sudo apt-get install -y mssql-server && sudo /opt/mssql/bin/mssql-conf setup
    • 安装命令行工具:sudo apt-get install -y mssql-tools unixodbc-dev
  • 远程连接与防火墙
    • 开放默认端口:sudo ufw allow 1433/tcp
    • 验证服务状态:systemctl status mssql-server --no-pager
  • 常见连接失败排查
    • 查看错误日志:/var/log/sqlserver/MSSQLSERVER.log
    • 检查系统资源(内存、磁盘、CPU)与端口连通性(如 nc/telnet 到 1433)。

四 功能支持差异与注意事项

  • 引擎与特性:在 Linux 上提供与 Windows 相近的核心数据库能力,如 内存中 OLTP列存储索引透明数据加密(TDE)访问控制与审计 等,适合大多数业务场景。
  • 平台限制(与 Windows 的差异)
    • SQL Server 2025(17.x)预览 RC0:Linux 上不支持本地 ONNX 模型;PolyBase 网络加密需设为 0
    • 混合架构 CPU(如 Intel 第 12 代+)的物理 Linux 主机存在启动断言问题,需禁用 E-cores 或改用容器/虚拟化环境。

0