Veja como obter acesso exclusivo a um banco de dados SQL Server durante um Restore.
Ao restaurar um banco de dados, uma das coisas que você precisa fazer é garantir que você tenha acesso exclusivo ao banco de dados. Se houver outros usuários conectados no banco de dados, você não conseguirá fazer o restore.
Provavelmente o que acontecerá é que ao tentar fazer o restore do seu banco de dados você receberá o seguinte erro:
Msg 3101, Level 16, State 1, Line 1
Exclusive access could not be obtained because the database is in use.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Obtendo o acesso exclusivo:
Para obter o acesso exclusivo, você precisa que todas as conexões sejam dropadas (apagadas), ou o banco de dados que eles as outras conexões estão acessando precisam ser alteradas para que não usem o banco de dados no momento que você estiver tentando restaurar. Você pode usar sp_who2 ou SSMS para ver quais conexões estão usando o banco de dados que você está tentando restaurar.
Usando KILL:
Uma opção para obter acesso exclusivo é usar o comando KILL para matar cada conexão que está usando o banco de dados. Mas esteja ciente de quais conexões você está matando e os problemas de ROLLBACK que podem precisar ocorrer durante esse processo.
Usando ALTER DATABASE (Meu preferido):
Uma outra opção é colocar o banco de dados no modo de usuário único e, em seguida, fazer a restauração. Isso também faz uma ROLLBACK dependendo da opção que você usa, mas fará todas as conexões de uma só vez. Veja abaixo o código para fazer isso:
ALTER DATABASE AdventureWorks2016 SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO RESTORE DATABASE AdventureWorks2016 FROM DISK = 'D:\AdventureWorks2016.bak' GO
Wesley Mota
Latest posts by Wesley Mota (see all)
- The Ultimate Guide to Gry Online Ruletka - novembro 14, 2024