Traceflag 1800 是否需要重新啟動?
我們最近將數據庫鏡像遷移到了新硬體。輔助伺服器上的日誌驅動器(和其他 SQL Server 驅動器)已格式化為 64KB 塊大小,而主伺服器使用預設的 4KB。
因此,我們幾乎不斷地在輔助日誌中獲得以下條目 -
There have been N misaligned log IOs which required falling back to synchronous IO. The current IO is on file L:\SQLSERVER\Logs\MyDatabase_log.ldf.
本文建議修復是在伺服器上打開跟踪標誌 1800
根據 Microsoft 的建議,扇區大小為 512 字節
我在兩台伺服器上都執行了以下命令:
fsutil fsinfo ntfsinfo L:\
並且可以看到主要的:
Bytes Per Sector : 512 Bytes Per Physical Sector : 512 Bytes Per Cluster : 4096 Bytes Per FileRecord Segment : 1024
和次要的:
Bytes Per Sector : 512 Bytes Per Physical Sector : 4096 Bytes Per Cluster : 65536 Bytes Per FileRecord Segment : 1024
因此,似乎應該在主伺服器上啟用 traceflag 1800。
考慮到這一點,我
DBCC TRACEON (1800, -1);
在主節點上執行並驗證它是否與DBCC TRACESTATUS
然後我檢查了輔助節點上的錯誤日誌,可以看到有關 Async IO 的消息仍然存在。
此跟踪標誌是否需要設置為啟動參數(隨後重新啟動)才能生效?顯然我無論如何都會這樣做,所以它會持續重啟,但只是執行第
DBCC TRACEON
一個,所以它是活動的該文件沒有提到需要重新啟動。
顯然,找出答案的方法是測試,但由於這是一個生產伺服器,我需要一個維護視窗來處理我目前無法使用的
最終,主伺服器將遷移到新硬體,我將確保以相同的方式格式化磁碟,但作為平局,我希望這個跟踪標誌能提供快速修復。
如果我不能讓它工作,我想中間選項是將現有主節點上的日誌驅動器重新格式化為 64KB 塊大小
您引用的文件說:
必須全域啟用全域跟踪標誌。否則,跟踪標誌無效。我們建議您在啟動時使用 -T 命令行選項啟用全域跟踪標誌。這可確保在伺服器重新啟動後跟踪標誌保持活動狀態。重新啟動 SQL Server 以使跟踪標誌生效。
和
使用 DBCC TRACEON 和 DBCC TRACEOFF 命令。例如,要全域啟用 2528 跟踪標誌,請使用帶有 -1 參數的 DBCC TRACEON:DBCC TRACEON (2528, -1)。**使用 DBCC TRACEON 啟用全域跟踪標誌的效果會在伺服器重新啟動時失去。**要關閉全域跟踪標誌,請使用帶有 -1 參數的 DBCC TRACEOFF。
在標誌 1800 的定義上,它說:
在 SQL Server Always On 和日誌傳送環境中,當不同扇區大小的磁碟用於主副本和輔助副本日誌文件時,啟用 SQL Server 優化。只有事務日誌文件駐留在磁碟上的扇區大小為 512 字節的 SQL Server 實例上才需要啟用此跟踪標誌。它不需要在具有 4k 扇區大小的磁碟上啟用。有關詳細資訊,請參閱此 Microsoft 支持文章。
注意:此跟踪標誌適用於 SQL Server 2012 (11.x) SP1 CU13、SQL Server 2012 (11.x) SP2 CU3、SQL Server 2014 (12.x) RTM CU5 和更高版本。
範圍:僅限全球
這意味著需要重新啟動,具體取決於您使用的配置方法:如果 by
DBCC TRACEON
,則不需要重新啟動。如果按-T
,則需要重新啟動。由於您現在沒有使用 -T 推薦選項重新啟動伺服器的維護視窗,因此您可以使用 DBCC TRACEON 立即啟動它,並在服務屬性上配置 -T 而無需重新啟動 SQL Server。這樣下次伺服器重啟時,DBCC TRACEON配置的標誌會失去,但選項-T會生效。