Sql-Server

AlwaysOn 中未對齊的日誌 IO 問題和不匹配的 LUN 扇區大小

  • November 30, 2015

我在 Azure 中具有輔助副本的 2014 SP1 非同步模式 AlwaysOn 環境中的高日誌發送隊列中遇到了一點問題。

對於我們更高事務量的數據庫之一,我們看到日誌發送隊列大小在很長一段時間內高達近 2GB。最初,由於 Azure VM 的大小,我們看到輔助伺服器上的 CPU 瓶頸,我們對此進行了糾正。然而,我們仍然留下了一些高日誌隊列大小和緩慢的發送速率,再加上相應的高重做。

我們使用以下錯誤日誌消息將其追溯到 IO 問題:“有 112313856 個未對齊的日誌 IO 需要回退到同步 IO。目前 IO 已存檔……”更具體地說,這與不匹配我們的 SAN 和 Azure LUN 之間的磁碟扇區大小。

這篇知識庫文章似乎準確地解決了我的問題: https: //support.microsoft.com/en-us/kb/2936603

然而它已經有一年了,並且適用於大約一年的 CU5,我們比 CU5 大約有 8 個更新檔。此外,我在跟踪標誌 1800 上找不到來自 MS 的任何官方文件。是否有人對此錯誤消息或有關跟踪標誌 1800 的資訊有類似的經驗?如果是這樣,您的問題是否已使用此標誌更正,或者您是否被迫在兩個副本之間匹配 LUN 磁碟扇區大小?

謝謝!

由於您正在執行 SQL Server 2014 SP1which is build 12.0.4100,因此它包括來自較低 RTM 分支的所有更新,包括所有 CU。您仍然需要啟用TF 1800(作為啟動參數並重新啟動 SQL Server 服務 - 這必須在維護視窗期間完成,因為這是您的應用程序的停機時間。)

我想我的問題的根源是,標誌 1800 在 SQL 2014 CU5 之後是否有任何影響?

是的,即使您在 SP1 上,也需要打開 TF 1800。這是因為您的磁碟扇區大小未對齊。

在 AlwaysOn 可用性組 (AG) 中儲存主副本和輔助副本的日誌文件的磁碟具有不同的扇區大小。例如:

  • 主副本日誌文件位於扇區大小為 512 字節的磁碟中。但是,輔助副本日誌文件位於扇區大小為四千字節 (KB) 的磁碟中。
  • 主副本日誌文件位於扇區大小為 512 字節的本地本地系統中。但是,輔助副本位於扇區大小為四千字節 (KB) 的 Windows Azure 儲存中。

如果您想了解有關該問題的更多資訊,請參閱

在主伺服器和輔助伺服器(磁碟、CPU、RAM 等)上具有相同的硬體配置始終是最佳實踐。

引用自:https://dba.stackexchange.com/questions/122457