Dicas SQL Server

Obter acesso exclusivo a um banco de dados SQL Server no Restore.

Obter acesso exclusivo a um banco de dados SQL Server no Restore
Obter acesso exclusivo a um banco de dados SQL Server no Restore

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
Obter acesso exclusivo a um banco de dados SQL Server no Restore.
The following two tabs change content below.

Wesley Mota

DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Latest posts by Wesley Mota (see all)