/*
Olá amigos!
Ja falei que a vida de DBAs é cheia de aventura? Essa semana o caso abaixo elevou o nível da minha adrenalina. Sem aviso e no meio do dia uma base de produção critica ficou inacessível sem razão aparente.
Ao tentar acessa-la com o Use Database recebia a seguinte mensagem
*/
Msg 952, Level 16, State 1, Line 1
Database 'MinhaBase' is in transition. Try the statement later.
-- ou na tradução do SQL
Msg 952, Level 16, State 1, Line 1
Banco de dados 'MinhaBase' em transição. Tente a instrução mais tarde.
/*
E nunca mais voltava!
Após alguns minutos de desespero, descobrimos que o erro foi causado por um comando ALTER DATABASE MinhaBase SET OFFLINE. ( meu colega DBA que originou o comando jura de pé junto que só tinha acabado de fazer um backup e eu acredito nele)
Como o banco estava cheio de usuários o SQL estava aguardando que todos se desconectassem da base para concluir o comando e ao mesmo tempo bloqueou todos os novos usuários de se conectarem naquela base.
Para solucionar tivemos que encontrar o session id do comando com a sys.dm_exec_requests
*/
select session_id, command, wait_resource
from sys.dm_exec_requests
WHERE
command = 'ALTER DATABASE'
-- No wait_ressource está a indicação do banco de dados que está sendo alvo do comando
-- E matar o session id que obtemos
kill 59
-- E tudo volta ao normal como mágica.... ufa...
Great! Quando bate o desespero é meio complicado... Já me perdi com isso.
ResponderExcluirTenso rsss
ResponderExcluirHaja coração! rsrs
ResponderExcluirVelho esse post foi minha salvação!
ResponderExcluirAcabei de resolver esse erro aqui na empresa!!
Obrigado Felipe.