我有一个数据库,XYZ,有一个损坏的日志文件,现在由于日志文件完全无法使用,这使得这个特定的数据库无法使用,我需要能够重建它.
我已经对这个过程做了很多研究,但是我被卡在了dbcc checkdb上.
我跑了命令
alter database xyz SET single_user with immediate rollback
然后
use master dbcc checkdb('xyz',REPAIR_ALLOW_DATA_LOSS)
但我一直遇到这个错误:
Msg 924,Level 14,State 1,Line 2 Database 'XYZ' is already open and can only have one user at a time.
我研究过的所有内容都表明数据库需要处于紧急模式,然后数据库需要处于单用户模式.如果我将数据库恢复为多用户模式,则表示数据库需要处于单用户模式.好吧,我这样做,然后得到这个问题.
我跑了
select spid from master..sysprocesses where dbid = DB_ID('XYZ') and spid <> @@spid
检查使用数据库的任何进程,但不返回任何行,并且日志不显示有关正在恢复的数据库或任何此类性质的任何内容.数据库确实显示为“紧急”.
有任何想法吗?