Eu tenho um DB, XYZ, que tinha um arquivo de log corrompido e, agora, como o arquivo de log está totalmente inutilizável, isso está inutilizando esse BD específico e eu preciso ser capaz de reconstruí-lo.
Eu já fiz muita pesquisa sobre este processo, mas estou ficando preso no dbcc checkdb.
eu corri o comando
alter database xyz SET single_user with immediate rollback
e subsequentemente
use master
dbcc checkdb('xyz',REPAIR_ALLOW_DATA_LOSS)
Mas continuo a encontrar este erro:
Msg 924, Level 14, State 1, Line 2
Database 'XYZ' is already open and can only have one user at a time.
Tudo o que pesquisei indica que o DB precisa estar no modo de emergência e que o DB precisa estar no modo de usuário único. Se eu reverter o banco de dados para o modo multiusuário, isso indica que o banco de dados precisa estar no modo de usuário único. Ok, bem, eu faço isso e depois recebo este problema.
Eu corri
select spid from master..sysprocesses where dbid = DB_ID('XYZ') and spid <> @@spid
para verificar se há algum processo usando o banco de dados, mas nenhuma linha é retornada e os logs não mostram nada sobre o banco de dados que está sendo recuperado ou algo dessa natureza. O DB mostra como "Emergência".
Alguma idéia?