修復SQLSERVER 資料庫一致性錯誤與分配錯誤

2021-06-18 06:19:28 字數 1291 閱讀 6416

一、把資料庫置為單使用者模式:

sp_dboption '資料庫名稱', 'single user', 'true'

二、在允許資料丟失情況下修復資料庫:

dbcc checkdb('資料庫名稱',repair_allow_data_loss)

如果執行一次不行,可以在多執行幾次直到沒有再提示資料庫有錯誤為止。

三、把資料庫重新設定為多使用者模式:

sp_dboption '資料庫名稱', 'single user', 'false'

這樣這個資料庫的錯誤修復就完成了。然後停止掉sqlserver,重新啟動伺服器就可以。

這種方法對於一般出現問題可以不用安裝企業管理器,直接在伺服器用osql –e 進入資料庫,然後通過上面兩條命令來修復資料庫。這樣速度比較快!

其他人提供的方法:

一、dbcc checkdb :

在sql查詢分析器中執行以下sql進行資料庫的修復,修復資料庫存在的一致性錯誤與分配錯誤。

use master

declare @databasename varchar(255)

set @databasename='需要修復的資料庫名稱'

exec sp_dboption @databasename, n'single', n'true'

dbcc checkdb(@databasename,repair_allow_data_loss)

dbcc checkdb(@databasename,repair_rebuild)

exec sp_dboption @databasename, n'single', n'false'

然後執行 dbcc checkdb('需要修復的資料庫名稱') 檢查資料庫是否仍舊存在錯誤。注意:修復後可能會造成部分資料的丟失。

2. dbcc checktable 

如果dbcc checkdb 檢查仍舊存在錯誤,可以使用dbcc checktable來修復。 

use 需要修復的資料庫實體的名稱 

declare @dbname varchar(255) 

set @dbname='需要修復的資料庫實體的名稱' 

exec sp_dboption @dbname,'single user','true' 

dbcc checktable('需要修復的資料表的名稱',repair_allow_data_loss) 

dbcc checktable('需要修復的資料表的名稱',repair_rebuild) 

exec sp_dboption @dbname,'single user','false'

一次SQLServer資料庫修復經歷

資料庫損壞情況 資料庫有多個資料檔案及日誌檔案,其中乙個資料檔案損壞丟失,後通過檔案恢復工具恢復出來,但是有錯誤,導致資料庫無法啟動。修復步驟 1.首先嘗試 附加資料庫 根據網上的資料,如果資料庫損壞不嚴重的話,可以直接通過 附加資料庫 的方式恢復,但是很不幸,嘗試失敗 不過通過 附加資料庫 得到了...

SQL SERVER 2005 資料庫置疑修復

alter database 置疑資料庫 set emergency go alter database 置疑資料庫 set single user with rollback immediate go use master go alter database 置疑資料庫 rebuild log o...

SQL SERVER 2005 資料庫置疑修復

alter database 置疑資料庫 set emergency go alter database 置疑資料庫 set single user with rollback immediate go use master go alter database 置疑資料庫 rebuild log o...