Ola-Hallengren

Ola Hallengren IntegrityCheck 不包括 TempDB

  • February 11, 2019

根據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 上送出問題以將其放入未來的版本中。

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