Sql-Server

表損壞錯誤

  • May 13, 2021

我的 SQL Server 數據庫有問題。今天打開它,看到一個錯誤——SQL Server Table Corruption Error。

我不知道這個錯誤的原因。我應用了 SQL Server Management Studio,但它無法完全恢復我的數據庫。

有人知道修復 SQL Server 數據庫的方法嗎?

數據庫是否打開而您只是無法查看單個表,或者您根本無法瀏覽您的數據庫?伺服器上的其他數據庫是否受到影響,還是只有一個?目前的數據庫狀態是什麼 - 離線、可疑或其他?每個都可能意味著糾正或修復問題的不同步驟。

此外,如果您手頭有備份,則需要將其放在附近,以防無法修復導致此問題的損壞。

如果您可以打開數據庫,首先您需要使用 DBCC 掃描它,看看是否有任何明顯的情況出現:

DBCC CHECKDB ('YourDatabase') WITH NO_INFOMSGS

從那裡,處理您看到的錯誤消息或警告 - 它應該提供足夠的詳細資訊,以便您能夠搜尋特定問題(或更新您的問題以包含這些詳細資訊,以便我們可以更直接地幫助您)。

SqlMag 有一個關於腐敗的精彩系列,它是什麼,以及如何應對它,從這裡開始:

http://sqlmag.com/blog/sql-server-database-corruption-part-i-what-corruption

如果您想查看他們的修復建議,請跳至第 9 節,但請確保在採取任何行動之前了解您正在處理的內容。

在採取任何步驟之前,請閱讀有關DBCC CHECKDB選項的資訊。

  • 要修復表,請將數據庫更改為單使用者模式(如果是多使用者模式)
 ALTER DATABASE [databasename] SET SINGLE_USER WITH NO_WAIT
  • 修復表:
 use databasename;
 dbcc checktable('myDbTableName', repair_allow_data_loss)
  • 修復後需要再次檢查數據庫,並設置為多使用者模式
 ALTER DATABASE [MyDbName] SET MULTI_USER WITH NO_WAIT​

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