Dbcc-Checkdb

自願使用 DBCC CheckDb 產生錯誤

  • May 10, 2018

有誰知道我怎樣才能讓 DBCC CheckDB 產生錯誤?我正在測試一個腳本,需要 DBCC Checkdb 在最簡單的模式下返回錯誤,同時嘗試修復和嘗試進入單使用者模式時……

我正在使用的簡單 dbcc checkdb 命令是批處理文件的一部分,如下所示:

OSQL -S MYPC -E -d MyDB -l 10 -Q "DBCC CHECKDB(AG_DB_STORESQL)" -b -o c:\MyFolder\MSSQL_DB_CHECK.Log

如果沒有發現錯誤,則腳本結束。如果發現錯誤,腳本會嘗試使用 REPAIR_REBUILD 選項修復它們,如果失敗,腳本會嘗試使用 REPAIR_ALLOW_DATA_LOSS 選項修復它們。顯然,在嘗試修復腳本之前嘗試將數據庫置於單使用者模式(這也是錯誤擷取的)

所以我正在尋找的只是一種導致 DBCC CheckDB 返回錯誤的方法。

Paul Randal創建了方便的腐敗展示腳本。這些真的很好,對你有很大幫助。請瀏覽以下連結

有誰知道我怎樣才能讓 DBCC CheckDB 產生錯誤?

使用致命 dbcc writepage ({'dbname' | dbid}, fileid, pageid, offset, length, data [, directORbufferpool]) 的ON A TEST (NON-PROD) 完全沙盒環境。

DBCC WRITEPAGE 的目的是:

  • 允許 SQL Server 團隊自動測試 DBCC CHECKDB 和修復。
  • 為展示和測試設計損壞。
  • 允許通過手動編輯實時損壞的數據庫來進行最後的災難恢復。

除了“大師” Paul Randal之外,@SteveStedman有一系列很好的數據庫損壞挑戰(有解決方案 - 但是一旦你嘗試自己解決它,請稍後再參考)。

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