Dbcc-Checkdb
自願使用 DBCC CheckDb 產生錯誤
有誰知道我怎樣才能讓 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有一系列很好的數據庫損壞挑戰(有解決方案 - 但是一旦你嘗試自己解決它,請稍後再參考)。