应用对象
SQL Server 2014 Developer SQL Server 2014 Enterprise SQL Server 2014 Standard SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2016 Enterprise Core SQL Server 2016 Standard SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Web SQL Server 2016 Express

应用此修补程序后,必须在具有 512 字节物理扇区大小的所有服务器或副本上启用跟踪标志 1800 作为启动参数,然后重启它们,以使此修补程序正常工作。

症状

请考虑以下情况:

  • 在 Microsoft SQL Server 中启用 AlwaysOn 可用性组或日志船功能。

  • 将主要和辅助副本 (replica) 的日志文件存储在 AlwaysOn 可用性组中的磁盘 (AG) 具有不同的扇区大小。 或者,在 Logshipping 环境中,存储 Logshipping 主服务器和 Logshipping 辅助服务器的日志文件的磁盘具有不同的扇区大小。 例如:

    • 主副本 (replica) 日志文件位于扇区大小为 512 字节的磁盘上。 但是,辅助副本 (replica) 日志文件位于扇区大小为 4 kb 的磁盘上, (KB) 。

    • 主副本 (replica) 日志文件位于扇区大小为 512 字节的本地系统上。 但是,辅助副本 (replica) 位于扇区大小为 4 KB (KB) 的 Windows Azure 存储磁盘上。

在这种情况下,以下错误消息记录在错误日志SQL Server。 如果在重启服务器之前存在未应用于辅助服务器的日志,则错误消息可能会在重启后继续运行一段时间。

存在 X 个未对齐的日志 IO,需要回退到同步 IO。 当前 IO 位于文件 ....

此外,由于同步 I/O,AG 或 Logshipping 同步运行速度非常慢。 如果辅助副本 (replica) 位于 Windows Azure 存储中,则完成同步过程所需的时间比预期长得多。注意 使用扇区大小为 4 KB 的新驱动器和扇区大小为 512 字节的旧驱动器时,会出现此问题。 有关新驱动器的详细信息,请参阅 SQL Server - 新驱动器使用 4K 扇区大小SQL Server - 存储空间/VHDx 和 4K 扇区大小

SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 请参阅SQL Server的最新累积更新:

解决方法

若要解决此问题,请将目标处的事务日志文件移动到 每个物理扇区的字节 数设置为 512 字节的驱动器。

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

更多信息

最佳做法是,尝试确保所有副本上的所有磁盘至少 (托管日志文件) 具有相同扇区大小的所有磁盘。 在混合环境中,辅助节点的物理扇区为 512 字节,而主副本的扇区大小为 4 KB,则应在具有 512 字节物理扇区大小并重启的所有服务器或副本上使用 TF 1800 作为启动标志。 这可确保正在进行的日志创建格式使用 4 KB 扇区大小。有关SQL Server如何处理较大扇区大小的详细信息,请参阅支持博客上的以下文章:SQL Server – 存储空间/VHDx 和 4K 扇区大小 可以使用 Fsutil 命令提示符实用工具来确定每个物理扇区的字节数值。 如果此参数在输出中不可见,则必须应用 知识库文章中指定的修补程序982018若要验证你拥有的驱动器类型,请执行以下步骤:

  1. 在提升的命令提示符下运行以下命令:

    Fsutil fsinfo ntfsinfo x: 注意 x 占位符表示要检查的驱动器。

  2. 使用“ 每个扇区字节数 ”和“ 每个物理扇区字节数 ”的值来确定你拥有的驱动器类型。 为此,请使用下表:

    “每扇区的字节数”值

    “每个物理扇区的字节数”值

    驱动器类型

    4096

    4096

    4K 本机

    512

    4096

    高级格式 (也称为 512E)

    512

    512

    本机 512 字节

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。