Como alterar o Collation de um Banco de dados de Sistema no Sql Server 2005+

Estava tranquilamente aplicando o SP2 em um dos trocentos Sql Server 2008 R2 que suporto quando um colega de trabalho me pinga. Estou com um problema, a instalação do meu SP2 falhou, vendo os logs indentificamos que o msdb estava com um collation diferente dos outros bancos de sistema e de alguma forma estava impactando a instalação. E agora, o que fazer?

ALTER DATABASE [NOME DO BANCO] COLLATE [NOME DA COLLATION]

Infelizmente para bancos de sistema isso não funciona. Outra solução seria reinstalar ou fazer um rebuild dos bancos de sistema, o que não nos ajuda muito, apenas frustra. Mas com um pouco de criatividade podemos resolver este problema.

Solução:

Para o meu amigo alterar o MSDB ja resolvia o problema dele, mas aqui nós vamos radicalizar e alterar o collation do MASTER.

Para começar faça um backup do banco de dados master:

backup database master to disk='[your path]\master.bak’

Depois restaure o master com outro nome:

restore database master2 from disk ='[your path]\master.bak’ with move ‘master’ to ‘[your path]\master2.mdf’, move ‘mastlog’ to ‘[your path]\masterlog2.ldf’

Agora vamos ver a collation do master e do master2:

select name, collation_name from sys.databases

image

Note que a collation é a mesma.

Vamos alterar a collation do master2 usando o comando que vimos no inicio:

ALTER DATABASE [master2] COLLATE Latin1_General_CI_AS_KS_WS

Como o master2 não é um banco de sistema o objetivo é facilmente alcançado.

Agora de shutdown em seu servidor

O proximo passo é renomear os arquivos dos bancos, renomeie o data e log file do banco de dados master para old(sugestão) e os arquivos do banco master2 para os nomes originais do banco master. Figuras abaixo ilustram.

Antes:

image

Depois:

image

Reinicie o Serviço do Sql Server.

Rode novamente:

select name, collation_name from sys.databases

Resultado:

image

Esse procedimento pode ser usado em todos os bancos do sistema. Para o tempdb basta alterar o collation do banco model.

Fim.

Anúncios

Deixe um comentário

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 )

Foto do Google+

Você está comentando utilizando sua conta Google+. 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 )

Conectando a %s