RT,我有一数据库置疑了 ,DBCC CHECKDB 提示消息 211,级别 23,状态 51,第 1 行
可能发生了架构损坏。请运行 DBCC CHECKCATALOG。
消息 0,级别 20,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。运行 DBCC CHECKCATALOG 后,再运行DBCC CHECKDB还是原来的提示。DBCC CHECKTABLE 提示 :
无法在数据库 mydb 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式求各位高手
可能发生了架构损坏。请运行 DBCC CHECKCATALOG。
消息 0,级别 20,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。运行 DBCC CHECKCATALOG 后,再运行DBCC CHECKDB还是原来的提示。DBCC CHECKTABLE 提示 :
无法在数据库 mydb 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式求各位高手
--①设置数据库为可更新状态
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go--②将数据库模式改为紧急
ALTER DATABASE mydb SET EMERGENCY--③更改数据库单用户使用模式
sp_dboption 'mydb ', 'single user', 'true'--④重建日志文件
dbcc checkdb('mydb ',REPAIR_ALLOW_DATA_LOSS)--⑤检查数据库状态(可省略)
DBCC CHECKDB('mydb ')--⑥取消单用户使用模式
sp_dboption 'mydb ','dbo use only','false'
go--⑦改变数据库可更新状态
sp_configure 'allow updates', 0
reconfigure wITh override
Go
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
ALTER DATABASE mydb SET EMERGENCY
go
alter database mydb set single_user
go
dbcc checkdb('mydb')
--此处报错
--消息 211,级别 23,状态 51,第 1 行
--可能发生了架构损坏。请运行 DBCC CHECKCATALOG。
--消息 0,级别 20,状态 0,第 0 行
--当前命令发生了严重错误。应放弃任何可能产生的结果。
--然后执行
DBCC CHECKCATALOG
--再执行
dbcc checkdb('mydb')
--还是原来的错误
dbcc checktalbe('table')
--提示
--消息 3908,级别 16,状态 1,第 1 行
--无法在数据库 'mydb' 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式
go
sp_configure 'allow updates',1
go
reconfigure with override
go
ALTER DATABASE mydb SET EMERGENCY
go
alter database mydb set single_user
go
dbcc checkdb('mydb',REPAIR_ALLOW_DATA_LOSS)
--此处报错
--消息 211,级别 23,状态 51,第 1 行
--可能发生了架构损坏。请运行 DBCC CHECKCATALOG。
--消息 0,级别 20,状态 0,第 0 行
--当前命令发生了严重错误。应放弃任何可能产生的结果。
--然后执行
DBCC CHECKCATALOG
--再执行
dbcc checkdb('mydb',REPAIR_ALLOW_DATA_LOSS)
--还是原来的错误
dbcc checktalbe('table',REPAIR_ALLOW_DATA_LOSS)
--提示
--消息 3908,级别 16,状态 1,第 1 行
--无法在数据库 'mydb' 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式
参考http://blog.csdn.net/xhliugreat/article/details/7873583
这样执行的。