改進

假設您使用的是 Linux 上的 SQL Server 2017。在某些情況下,SQL Server 在使用易失性緩存的系統上可能會遇到資料遺失的問題。由於無法預見的情況(例如電源發生故障,就會將緩存的資料寫入穩定的媒體),造成損失。為了避免這類案例,在 Linux 上的 SQL Server 2017 累積更新6(CU6)中,會出現 強制性清洗機制。如果您的儲存子系統無法在斷電時保證持久寫入,我們建議您在 Linux 上套用 SQL Server 2017 的 CU6。 此更新可啟用下列功能:

  • 強制清洗 資料庫寫入活動期間的行為,例如檢查點與事務日誌寫入。

  • 預設為 writethrough = 1alternatewritethrough = 1選項的設定設定。 這些預設設定可讓 SQL Server 確保將寫入 durably 刷新到封鎖裝置。 備用 writethrough是將持續性清洗要求優化至檔案系統的選項。如需這兩個設定的詳細資訊,請參閱下表:

名稱

預設值

描述

writethrough

1

有效值為0和1。 

1 = 將 FILE_FLAG_WRITE_THROUGH 要求轉換成 O_DSYNC 開啟。

0 = 防止 O_DSYNC 開啟 FILE_FLAG_WRITE_THROUGH 要求的翻譯。

alternatewritethough

1

有效值為0和1。 

1= 針對 FILE_FLAG_WRITE_THROUGH 要求的主機延伸啟用優化清洗。在檔案上寫入(s)對區塊裝置進行 fdatasync 的檔案優化呼叫。

0 = 停用替換清除優化。 檔案是使用 O_DSYNC 開啟,而基礎檔案系統會執行必要的寫入、清洗要求。

注意alternatewritethrough 設定只有在 writethrough = 1 時才適用。

其他相關資訊

如需詳細資訊,請參閱Linux 版 SQL Server 2017 的最佳做法與設定指導方針 ,以處理高頻率寫入工作負載及資料庫檔案放置建議。  

在能保證寫入的儲存系統上執行的SQL Server 安裝O_DIRECT 安全,可以讓追蹤旗(TF)3979停用強制清洗行為,並將    mssql. 會議中的alternatewritethroughwritethrough選項設定為零。這會傳回 SQL Server 2017來CU6 行為。

 儲存系統可以確保任何快取或暫存的寫入都是安全且持久的,方法是保證將所頒發給裝置的寫操作保留在系統發生故障、介面重設和電源故障等狀態,而媒體本身則是硬體冗余的。

以下是有關使用這些變更之檔案 i/o 之 SQL Server 行為的詳細資訊:

  • 在 CU6 中,資料庫(.mdf)和事務日誌(.ldf)檔案在使用強制刷新 行為時,不會在中使用 writethrough 和 alternatewritethrough。 TF 3979 會禁止對資料庫與事務記錄檔檔案使用 強制性刷新 行為,且會使用 writethrough 和 alternatewritethrough 邏輯。

  • 使用 SQL Server 中的FILE_FLAG_WRITE_THROUGH 開啟的其他檔案,例如資料庫快照、資料庫一致性檢查(CHECKDB)的內部快照、探測器追蹤檔案,以及延伸事件追蹤檔案,都會使用 writethrough 和 alternatewritethrough 優化。

解決方案

此更新包含在 SQL Server 的下列累積更新中:

       SQL Server 2017 累計更新6

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2017 的最新累計更新

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×