Ola-Hallengren
Ola Hallengren IntegrityCheck 不包括 TempDB
根據SQL Server Maintenance Solution - SQL Server Integrity Check,該
SYSTEM_DATABASES
值僅包括 master、msdb 和 model。為什麼 TempDB 被排除在外,因為它也可能存在導致頁面損壞的硬體問題?
有趣的是,DBCC CheckDB FAQ: Check for Corruption in SQL Server by Kendra Little 談到了檢查 TempDB 的必要性,但指向 Ola Hallengren 腳本,該腳本預設情況下似乎不檢查 TempDB。
根據Randi Vertongen留下的評論回答:
Ola 很久以前(+5 年)在 SQL Server Central 上提到預設情況下這是:
這是設計使然。DatabaseIntegrityCheck 不在 tempdb 上執行 checkdb。
並通過明確添加它來解決它。
在最新版本中,您可以這樣做:
EXECUTE dbo.DatabaseIntegrityCheck @Databases = 'SYSTEM_DATABASES,tempdb', @CheckCommands = 'CHECKDB'
他接著說:
當我開發腳本時,我正在研究 Microsoft 在維護計劃中的表現。他們沒有為 tempdb 做 checkdb,所以我也沒有這樣做。前段時間我添加了對 tempdb 檢查的支持,但不是預設的。您需要明確指定 tempdb。
不完全確定是否仍然如此。
如程式碼庫中所示,Ola 的腳本不會對 tempdb 執行 checkdb 。Tempdb 是一個臨時數據庫,並在 sql server 重新啟動時重新創建。
Brent 在 tempdb 上做 checkdb 是有道理的。您可以在 github 上送出問題以將其放入未來的版本中。