症状
假设你 在 Docker for WINDOWS 上运行 SQL Server 2017 Linux 容器映像。当 Docker 图像用于预配容器,并且使用卷装载位置(/var/opt/mssql 的默认位置)或任何父目录时,SQL Server 将不会启动。此外, 您收到类似于以下内容的错误消息:
日期时间 spid6s 错误:17053,严重性:16,状态:1。 日期时间 spid6s/var/opt/mssql/data/mastlog.ldf:操作系统错误31(连接到系统的设备不起作用。) 日期时间 spid6s 错误:9002,严重性:17,状态:0。 日期时间 spid6s 数据库 "master" 的事务日志已满,因为 "NOTHING"。 日期时间 spid6s 错误:928,严重性:20,状态:1。
原因
出现此问题的原因是,Windows 中的目录在 Docker 容器内作为常见的 Internet 文件系统(CIFS)安装。 在 Linux 上,CIFS 不是由 SQL Server 正式支持的文件系统。
解决方案
适用于此问题的修复程序包括在 SQL Server 的以下更新中:
SQL Server 2017累积更新 7
关于 SQL Server 内部版本
SQL Server 的每个新版本都包含上一版本中的所有修补程序和安全修补程序。 我们建议你为你的 SQL Server 版本安装最新版本:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的标准 术语 。
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 对于这些产品的性能或可靠性,Microsoft 不做任何暗示保证或其他形式的保证。