[ERRO SQL] Erro ao renomear banco de dados SQL (Microsoft SQL Server, Error: 5030)

Publicado: 06/07/2012 em Backup, Bases de Dados, Cotidiano, Erros, Microsoft, Programação, Segurança da Informação, Sistemas Operacionais, Softwares, SQL, Truques & Dicas
Tags:, , ,

erro_sqlserver

Eis que tentamos renomear um BD (bd_RC_ERP)  no SQL Server 2008  R2 ehh..

ERRO:

‘The database could not be exclusively locked to perform the operation. (Microsoft SQL Server, Error: 5030)’

sql erro 5030 - renomear Bd

Porém a solução é até que simples e não requer tanta complicação.

O Sql está tentando renomear o database  que está ativo..

Fix/WorkAround/Solução:

Dica

0) Crie uma nova query utilizando o bd MASTER e execuet o comando  sp_who2.

A procedure sp_Who2 é a versão não documentada da procedure sp_Who. Ambas são utilizadas na listagem de processos ativos no servidor, com pequenas diferenças.

Para identificar as conexões bloqueadoras, basta procurar pelos spid’s que aparecem listados na coluna BlkBy.

Existiam apenas três conexões ativas – na listagem Verificando na coluna DBName, vi o spid 55,57 e 58, mas suficientes para não permitirem a mudança do nome.

sp_who2

Para solução executei o comando  kill xxx, onde  xxx é o número do SPID da linha desejada.

2) Em seguida , basta executar o comando para rename do Banco:

ALTER DATABASE bd_RC_ERP
MODIFY NAME = bd_ERP_FIN

E assim obtemos os sucesso:

The database name ‘bd_ERP_FIN’ has been set.

Update:

Conforme orientado pelo amigo Ricardo Camargo, existe o modo menos ” estúpido” e mais “correto” de realizar essa tarefa, e assim sendo devemos usar:

ALTER DATABASE [YourDbName]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

A consulta acima irá reverter toda a transação que está sendo executado no banco de dados e traz banco de dados SQL Server em um modo de usuário único.

Como o script ALTER mencionado no topo do post vai remover esse erro. Por favor, certifique-se que, se você está no servidor de produção, alterar banco de dados deve ser usado com muito cuidado e deve-s LEMBRAR de VOLTAR a transação utilizando:

ALTER DATABASE [YourDbName]
SET MULTI_USER WITH ROLLBACK IMMEDIATE

GO

~\\|//~
 -(o o)- RODRIGO SILVA

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s