Linux 上的 SQL Server 2017 的发行说明
适用于: SQL Server 2017 (14.x) - Linux
以下发行说明适用于 Linux 上运行的 SQL Server 2017 (14.x)。 本文按各版本分为不同的部分。 有关详细的可支持性和已知问题,请参阅已知问题。 每个版本都链接到介绍更改的支持性文章,以及 Linux 包下载。
这些发行说明专门用于 SQL Server 2017 (14.x) 版本。 有关其他版本的发行说明,请参阅以下文章:
支持的平台
平台 | 文件系统 | 安装指南 |
---|---|---|
Red Hat Enterprise Linux 7.7 - 7.9 或 8.0 - 8.6 Server | XFS 或 EXT4 | 安装指南 |
SUSE Enterprise Linux Server v12 SP3 - SP5 | XFS 或 EXT4 | 安装指南 |
Ubuntu 16.04 LTS 1、18.04 LTS | XFS 或 EXT4 | 安装指南 |
Linux 上的 Docker 引擎 1.8+ | 空值 | 安装指南 |
1 对 Ubuntu 16.04 上的 SQL Server 的支持有限。 2021 年 4 月底,Ubuntu 16.04 从长期支持 (LTS) 版本的标准五年期维护时段转换为扩展安全维护 (ESM) 支持。 有关详细信息,请参阅 Ubuntu 16.04 LTS 转换为扩展安全维护 (ESM) | Ubuntu。
提示
有关详细信息,请查看 Linux 上 SQL Server 的系统要求。 有关 SQL Server 的最新支持策略,请参阅 Microsoft SQL Server 的技术支持策略。
工具
以 SQL Server 为目标的大多数现有客户端工具都可以无缝地以 Linux 上运行的 SQL Server 为目标。 某些工具与 Linux 配合使用时可能有特定的版本要求。 有关 SQL Server 工具的完整列表,请参阅适用于 SQL Server 的 SQL 工具和实用程序。
所有包的最新版本
本部分列出了 SQL Server 2017 中每个分发版包的最新版本。 下表显示了最新版本,即 CU 31 GDR。 有关完整的发布历史记录,请参阅 SQL Server 2017 的发布历史记录。
版本 | 发布 | Date | 构建 | 知识库文章 |
---|---|---|---|---|
SQL Server 2017 (14.x) | CU 31 GDR | 2023-02-14 | 14.0.3460.9 | KB 5021126 |
- 从 CU 4 开始,SQL Server 代理不再作为单独的包进行安装。 它与数据库引擎包一起安装,必须启用才能使用。
- 此版本中的 SUSE 不支持 mssql-server-is 包。 有关详细信息,请参阅 SQL Server Integration Services (SSIS)。
分发 | 包名称 | 包版本 | 下载 |
---|---|---|---|
Red Hat Enterprise Linux | |||
RHEL 8 | 数据库引擎 | 14.0.3460.9-3 | 数据库引擎 RPM 包 |
RHEL 8 | 全文搜索 | 14.0.3460.9-3 | 全文搜索 RPM 包 |
RHEL 8 | 高可用性 | 14.0.3460.9-3 | 高可用性 RPM 包 |
RHEL 7 | SSIS | 14.0.3015.40-1 | SSIS RPM 包 |
SUSE Enterprise Linux Server | |||
SLES 12 | 数据库引擎 | 14.0.3460.9-3 | 数据库引擎 RPM 包 |
SLES 12 | 全文搜索 | 14.0.3460.9-3 | 全文搜索 RPM 包 |
SLES 12 | 高可用性 | 14.0.3460.9-3 | 高可用性 RPM 包 |
Ubuntu | |||
Ubuntu 18.04 | 数据库引擎 | 14.0.3460.9-3 | 数据库引擎 Debian 包 |
Ubuntu 18.04 | 全文搜索 | 14.0.3460.9-3 | 全文搜索 Debian 包 |
Ubuntu 18.04 | 高可用性 | 14.0.3460.9-3 | 高可用性 Debian 包 |
Ubuntu 16.04 | SSIS | 14.0.3015.40-1 | SSIS Debian 包 |
如何安装更新
配置 CU 存储库 (mssql-server-2017
)时,可在执行新安装时获得 SQL Server 包的最新 CU。 如果需要 Docker 容器映像,请参阅适用于 Docker 引擎的 Linux 上的 Microsoft SQL Server 的官方映像。 有关存储库配置的详细信息,请参阅为 Linux 上的 SQL Server 配置存储库。
如果要更新现有的 SQL Server 包,请为每个包运行相应的更新命令以获取最新的 CU。 有关每个包的特定更新说明,请参阅以下安装指南:
版本历史记录
下表列出了 SQL Server 2017 (14.x) 的版本历史记录。
发布 | 版本 | 发布日期 |
---|---|---|
CU 31 GDR | 14.0.3460.9 | 2023-02-14 |
CU 31 | 14.0.3456.2 | 2022-09-20 |
CU 30 | 14.0.3451.2 | 2022-07-13 |
CU 29 GDR | 14.0.3445.2 | 2022-06-14 |
CU 29 | 14.0.3436.1 | 2022-03-30 |
CU 28 | 14.0.3430.2 | 2022-01-13 |
CU 27 | 14.0.3421.10 | 2021-10-27 |
CU 26 | 14.0.3411.3 | 2021-09-14 |
CU 25 | 14.0.3401.7 | 2021-07-12 |
CU 24 | 14.0.3391.2 | 2021-05-10 |
CU 23 | 14.0.3381.3 | 2021-02-24 |
CU 22 GDR | 14.0.3370.1 | 2021-01-12 |
GDR 3 | 14.0.2037.2 | 2021-01-12 |
CU 22 | 14.0.3356.20 | 2020-09-10 |
CU 21 | 14.0.3335.7 | 2020-07-01 |
CU 20 | 14.0.3294.2 | 2020-04-10 |
CU 19 | 14.0.3281.6 | 2020-02-05 |
CU 18 | 14.0.3257.3 | 2019-12-09 |
CU 17 | 14.0.3238.1 | 2019-10-08 |
CU 16 | 14.0.3223.3 | 2019-08-01 |
CU 15 GDR | 14.0.3192.2 | 2019-07-09 |
CU 15 | 14.0.3162.1 | 2019-05-23 |
CU 14 | 14.0.3076.1 | 2019-03-25 |
CU 13 | 14.0.3048.4 | 2018-12-18 |
CU 12 | 14.0.3045.24 | 2018-10-24 |
CU 11 | 14.0.3038.14 | 2018-09-20 |
CU 10 | 14.0.3037.1 | 2018-08-27 |
CU 9 GDR | 14.0.3035.2 | 2018-08-18 |
GDR 2 | 14.0.2002.14 | 2018-08-18 |
CU 9 | 14.0.3030.27 | 2018-07-18 |
CU 8 | 14.0.3029.16 | 2018-06-21 |
CU 7 | 14.0.3026.27 | 2018-05-24 |
CU 6 | 14.0.3025.34 | 2018-04-19 |
CU 5 | 14.0.3023.8 | 2018-03-20 |
CU 4 | 14.0.3022.28 | 2018-02-20 |
CU 3 | 14.0.3015.40 | 2018-01-03 |
GDR 1 | 14.0.2000.63 | 2018-01-03 |
CU 2 | 14.0.3008.27 | 2017-11-28 |
CU 1 | 14.0.3006.16 | 2017-10-24 |
GA | 14.0.1000.169 | 2017-10-02 |
已知问题
以下部分介绍了 Linux 上 SQL Server 2017 (14.x) 的已知问题。
常规
安装 SQL Server 的主机名的长度不能超过 15 个字符。
- 解决方法:更改
/etc/hostname
中的名称,使其不超过 15 个字符。
- 解决方法:更改
手动将系统时间设置为时间倒移,会导致 SQL Server 停止更新 SQL Server 中的内部系统时间。
- 解决方法:重新启动 SQL Server。
仅支持单个实例安装。
- 解决方法:如果希望在给定主机上安装多个实例,请考虑使用 VM 或 Docker 容器。
SQL Server Configuration Manager 无法连接到 Linux 上的 SQL Server。
sa 登录名的默认语言是英语。
- 解决方法:使用
ALTER LOGIN
语句更改 sa 登录名的语言。
- 解决方法:使用
数据库
不能使用 mssql-conf 实用工具移动
master
数据库。 可使用 mssql-conf 移动其他系统数据库。还原在 Windows 上 SQL Server 中备份的数据库时,必须在 Transact-SQL 语句中使用
WITH MOVE
子句。传输层安全性 (TLS) 的某些算法(密码套件)无法在 Linux 上的 SQL Server 中正常运行。 这会在尝试连接到 SQL Server 时导致连接失败,以及在高可用性组中的副本之间建立连接时出现问题。
解决方法:通过执行以下操作,修改 Linux 上的 SQL Server 的
mssql.conf
配置脚本以禁用有问题的密码套件:将下列内容添加到
/var/opt/mssql/mssql.conf
。[network] tlsciphers=AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHA
注意
在前面的代码中,
!
对表达式进行求反。 这向 OpenSSL 指明不使用以下密码套件。使用以下命令重启 SQL Server。
sudo systemctl restart mssql-server
Windows 上使用内存中 OLTP 的 SQL Server 2014 (12.x) 数据库无法还原到 Linux 上的 SQL Server。 要还原使用内存中 OLTP 的 SQL Server 2014 (12.x) 数据库,请先将数据库升级到 Windows 上的 SQL Server 的较新版本,然后再通过备份/还原或分离/附加将数据库移至 Linux 上的 SQL Server。
目前 Linux 不支持用户权限
ADMINISTER BULK OPERATIONS
。
网络
如果满足以下两个条件,则涉及来自 sqlservr
进程的出站 TCP 连接(如链接服务器或可用性组)的功能可能不起作用:
目标服务器被指定为主机名而不是 IP 地址。
源实例已在内核中禁用 IPv6。 要验证系统是否在内核中启用了 IPv6,以下所有测试都必须通过:
cat /proc/cmdline
将输出当前内核的引导 cmdline。 输出不得包含ipv6.disable=1
。/proc/sys/net/ipv6/
目录必须存在。- 调用
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP)
的 C 程序应成功,即系统调用必须返回一个fd != -1
并且不会因EAFNOSUPPORT
而失败。
确切的错误取决于该功能。 对于链接服务器,这表现为登录超时错误。 对于可用性组,辅助节点上的 ALTER AVAILABILITY GROUP JOIN
DDL 将在 5 分钟后因 download configuration timeout
错误而失败。
要解决此问题,请执行以下操作之一:
使用 IP 而不是主机名来指定 TCP 连接的目标。
从引导命令行中删除
ipv6.disable=1
,在内核中启用 IPv6。 执行此操作的方法取决于 Linux 发行版和引导加载程序,例如 grub。 如果希望禁用 IPv6,仍可通过在sysctl
配置中设置net.ipv6.conf.all.disable_ipv6 = 1
来禁用它(例如/etc/sysctl.conf
)。 这仍然会阻止系统的网络适配器获取 IPv6 地址,但允许sqlservr
功能运行。
网络文件系统 (NFS)
如果在生产中使用网络文件系统 (NFS) 远程共享,请注意以下支持要求:
使用 NFS 版本 4.2 或更高版本。 较早版本的 NFS 不支持现代文件系统常用的必需功能,例如
fallocate
和稀疏文件创建。仅在 NFS 装载上查找
/var/opt/mssql
目录。 不支持其他文件,例如 SQL Server 系统二进制文件。安装远程共享时,请确保 NFS 客户端使用
nolock
选项。
本地化
如果在安装过程中区域设置不是英语 (
en_us
),则必须在 bash 会话/终端中使用 UTF-8 编码。 如果使用 ASCII 编码,可能会看到类似于以下内容的错误:UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 8: ordinal not in range(128)
如果无法使用 UTF-8 编码,请使用
MSSQL_LCID
环境变量运行安装程序以指定语言选择。sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
运行
mssql-conf setup
安装程序并执行 SQL Server 的非英语安装时,在本地化文本“配置 SQL Server...”之后会显示错误的扩展字符。 或者,对于非拉丁语的安装,句子可能完全丢失。 丢失的句子应显示以下本地化字符串:The licensing PID was successfully processed. The new edition is [<Name> edition]
.输出此字符串仅供参考,下一 SQL Server 累积更新将针对所有语言解决此问题。 这不会以任何方式影响 SQL Server 的成功安装。
全文搜索
并非所有筛选器都适用于此版本,包括 Microsoft Office 文档筛选器。 有关支持的筛选器列表,请参阅在 Linux 上安装 SQL Server 全文搜索。
SQL Server Integration Services (SSIS)
此版本中的 SUSE 不支持 mssql-server-is 包。 目前仅 Ubuntu 和 Red Hat Enterprise Linux (RHEL) 支持该包。
Integration Services 包可使用 Linux 上的 ODBC 连接。 虽然已使用 SQL Server 和 MySQL ODBC 驱动程序测试过该功能,但也希望该功能可以与任何遵循 ODBC 规范的 Unicode ODBC 驱动程序搭配使用。 在设计阶段,可以提供 DSN 或连接字符串以连接到 ODBC 数据,还可以使用 Windows 身份验证。 有关详细信息,请参阅宣布 Linux 上的 ODBC 支持的博客文章。
在 Linux 上运行 SSIS 包时,此版本不支持以下功能:
- Integration Services 目录数据库
- SQL 代理计划的包执行
- Windows 身份验证
- 第三方组件
- 变更数据捕获 (CDC)
- Integration Services 横向扩展
- 适用于 SSIS 的 Azure 功能包
- Hadoop 和 HDFS 支持
- Microsoft Connector for SAP BW
有关当前不受支持或提供有限支持的内置 SSIS 组件的列表,请参阅 Linux 上的 SSIS 的限制和已知问题。
有关 Linux 上的 SSIS 的详细信息,请参阅以下文章:
- 宣布对 Linux 的 SSIS 支持的博客文章。
- 在 Linux 上安装 SQL Server Integration Services (SSIS)
- 使用 SSIS 在 Linux 上提取、转换和加载数据
SQL Server Management Studio (SSMS)
以下限制适用于 Windows 中连接到 Linux 上 SQL Server 的 SQL Server Management Studio。
不支持维护计划。
不支持管理数据仓库 (MDW) 和 SQL Server Management Studio 中的数据收集器。
具有 Windows 身份验证或 Windows 事件日志选项的 SQL Server Management Studio UI 组件不适用于 Linux。 仍可通过其他选项(如 SQL 登录名)使用这些功能。
不能修改要保留的日志文件数。