J'ai un dB, XYZ, qui avait un fichier journal corrompu et que le fichier journal est totalement inutilisable, cela rend cette DB spécifique inutilisable et je dois être capable de le reconstruire.
J'ai déjà fait beaucoup de recherches sur ce processus, mais je suis bloqué sur le DBCC Checkdb.
J'ai couru la commande
alter database xyz SET single_user with immediate rollback
et par la suite
use master
dbcc checkdb('xyz',REPAIR_ALLOW_DATA_LOSS)
Mais je continue à courir dans cette erreur:
Msg 924, Level 14, State 1, Line 2
Database 'XYZ' is already open and can only have one user at a time.
Tout ce que j'ai recherché a indiqué que la DB doit être en mode d'urgence, puis que la DB doit être en mode utilisateur unique. Si je revert le mode DB au mode multi-utilisateur, il indique que la DB doit être en mode mono-utilisateur. Ok bien je fais ça et puis obtenir ce problème.
J'ai couru
select spid from master..sysprocesses where dbid = DB_ID('XYZ') and spid <> @@spid
pour rechercher tous les processus à l'aide de la DB mais aucune ligne de lignes n'est renvoyée et que les journaux ne montrent rien à propos de la base de données en cours de récupération ou de quelque chose de cette nature. Le DB montre comme "urgence".
Des idées?
Retournez la base de données au mode Multi utilisateur et essayez quelque chose comme ce qui suit.
alter database xyz SET single_user with rollback immediate
dbcc checkdb('xyz',REPAIR_ALLOW_DATA_LOSS)
Probablement un autre processus saisit la connexion de base de données avant d'y arriver. La combinaison de ces deux déclarations devrait vous assurer que vous obtenez cette connexion.