Como forçar um banco de dados SQL Server 2008 a ficar offline


106

Como faço para forçar meu banco de dados a ficar offline, independentemente do que ou quem já o está usando?

Eu tentei:

ALTER DATABASE database-name SET OFFLINE;

Mas ainda está pendurado após 7 minutos.

Eu quero isso porque preciso testar o cenário.

Se é mesmo possível?

Respostas:


186

Fique offline

USE master
GO
ALTER DATABASE YourDatabaseName
SET OFFLINE WITH ROLLBACK IMMEDIATE
GO

Fique online

USE master
GO
ALTER DATABASE YourDatabaseName
SET ONLINE
GO

8
@radbyx: MSDN diz para usar masterao operar o estado do banco de dados
abatishchev de

17
@radbyx: Se você USE MY_DATABASE, então ALTER DATABASE MY_DATABASE SET OFFLINE irá falhar, porque você está usando! Sim, acabei de ser picado por aquilo ...
TarkaDaal

10
Não funcionou para mim: mensagem 5061, Nível 16, Estado 1, Linha 1 Falha em ALTER DATABASE porque um bloqueio não pôde ser colocado no banco de dados 'MeuBancoDeDados'. Tente mais tarde. Msg 5069, nível 16, estado 1, linha 1 Instrução ALTER DATABASE falhou.
Andez

6
Já vi ocorrências em que você ainda precisa usar um 'sp_who2 active' / 'sp_whoisactive' para ver algumas conexões teimosas de máquinas de trabalho agendadas ou coisas intermediárias e executar KILL com o número SPID para se livrar delas
Chris Wood

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.