Sql-Server

我是否面臨腐敗問題?

  • November 16, 2016

我發現msdb.dbo.suspect_pages有 15 個條目。其中 14 個最後一次更新是在 2014 年,屬於第 7 類(“解除分配”)。一個條目屬於類型 1(823 或 824 錯誤),計數為 1,最後一次更新於 2015 年 6 月。

最後一次DBCC CheckDB是在 11 月 9 日使用維護計劃執行的。我唯一的輸出是這項工作的歷史,說它完成了 100%:

適用於 64 位的 Microsoft (R) SQL Server 執行包實用程序版本 10.50.6000.34 版權所有 (C) Microsoft Corporation 2010。保留所有權利。開始時間:7:54:37 PM 進度:2016-11-09 19:54:44.66 來源:{84CA0A16-9095-4D9D-9CF8-4AF8A1144015}

執行查詢“DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp…”。 : 100% 完成 End Progress Progress: 2016-11-09 19:54:47.22 Source: Check Database Integrity Executing query “USE

$$ dbname $$ “.: 50% 完成 End Progress Progress: 2016-11-09 22:08:15.87 Source: Check Database Integrity Executing query “DBCC CHECKDB(N’dbname’) WITH NO_INFOM…”.: 100% 完成 End Progress DTExec : 包執行返回 DTSER_SUCCESS (0). Started: 7:54:37 PM Finished: 10:08:16 PM Elapsed: 8018.92 seconds. package執行成功. step成功.

所以沒有關於可能損壞的源/表/索引的進一步詳細資訊。我不確定我們是否在這裡發現了任何問題,因為它完成了 100%…

我執行了“sp_blitz”和“sp_blitzindex”,但它沒有返回任何損壞或類似的東西。

到目前為止,沒有任何可疑的失敗或任何可能由腐敗引起的事情。由於它已經存在了好幾個月,我不確定是否必須採取任何行動。當然,在該日期之前沒有備份存在……

我想知道接下來在哪裡看?

編輯:

@Randolph 指示的另一次 DBCC Checkdb 執行返回以下內容:

NT AUTHORITY\SYSTEM 執行的消息 DBCC CHECKDB (myDBName) WITH all_errormsgs, no_infomsgs, data_purity 發現 0 個錯誤並修復了 0 個錯誤。經過時間:1小時23分27秒。內部數據庫快照具有拆分點 LSN = 007c5657:00000372:000e 和第一個 LSN = 007c5657:00000353:0001。

我們還好嗎?我應該從 msdb.dbo.suspect_pages 中刪除條目嗎?

如果這沒有返回任何內容,那麼您的數據庫就可以了。

DBCC CHECKDB (DatabaseName) WITH NO_INFOMSGS,
ALL_ERRORMSGS, EXTENDED_LOGICAL_CHECKS, DATA_PURITY

由於您有event_type = 7==> 的含義,因此它被 DBCC 標記為已釋放

使用者無法再訪問或恢復任何解除分配的數據,並且無法確定解除分配數據的確切內容。因此,**在解除分配任何行或頁面後,引用完整性可能不准確,因為在此修復操作中未檢查或維護外鍵約束。**使用 REPAIR_ALLOW_DATA_LOSS 選項後,使用者必須檢查其數據庫的引用完整性(使用 DBCC CHECKCONSTRAINTS)。

因此,作為一個直接步驟(當您有維護視窗時),按照上面的@Randolph 建議執行 DBCC CHECKDB 。

作為預防措施,創建重要警報- sev 19 到 25 以及 823,824,825 和其他警報。

請記住,DBA 負責通過定期修剪來管理該表。

來自BOL

我們建議您定期刪除或歸檔 event_type 為 restore 或 repaired 的行,或具有舊 last_update 值的行。

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