MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Dica da Semana

Alterando o Collation Default do Servidor

por Nilton Pinheiro agosto 7, 2010 Nenhum comentário

Nota: Ressalto que o procedimento apresentado aqui é um procedimento não documentado e a execução é por sua conta e risco. Embora seja um procedimento já utilizado por diversar vezes, cada ambiente é um ambiente e não posso garantir que isto não lhe trará problemas futuros. 

A princípio este é o mesmo procedimento utilizado pelo setup quando se faz o REBUILD de uma instância do SQL Server utilizando o procedimento abaixo, conforme documentando do Books Online no tópico Setting and Changing the Server Collation.

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]
/SQLCOLLATION=CollationName

A grande diferença é que o procedimento executado pelo rebuild além de alterar o collation da instância também faz um REBUILD dos bancos de sistema (master, msdb,model, tempdb), ou seja, tudo fica como se fosse uma instalação zerada.

O interessante deste procedimento é que ele NÃO zera as bases de sistemas alterando apenas o collation default da instância, o collation de todas as bases de dados (sistema e usuários), das tabelas e respectivas colunas que possuem tipo de dados do tipo caracter (char, varchar, etc). Com isso, ao final do processo de alteração do collation tudo estará absolutamente como antes, ou seja, com todos os seus bancos de dados e logins funcionando normalmente como antes.

Como Executar o Procedimento

1. O primeiro passo é obviamente executar um bakup de todas as bases, incluindo as de sistema master,msdb e model.

2. Certifique-se que você não possui nenhuma base de dados em readonly, restoring ou qualquer outro status que impeça sua alteração e garanta que as bases não estão sem espaço livre. Já tive erros neste procedimento porque algumas bases estavam sem espaço livre.

3. Pare o serviço do SQL Server. É possível usar vários métodos, um deles é parar os serviços usando o utilitário SQL Server Configuration Manager como faço na figura abaixo.

3. Depois, abra um prompt de comando (DOS) com privilégios adminisrativos e navegue até o diretório de instalação do SQL Server. Localize o arquivo sqlservr.exe e execute sqlservr -m -T4022 -T3659 -q”novo_collate”, onde “novo_collate” é o collate que você deseja manter para o SQL Server. No exemplo abaixo o collate está sendo alterado para SQL_Latin1_General_CP1_CS_AS.

Duas observações importantes: O parâmetro -T deve ser maiúsculo e se a instalação do SQL Server estiver utilizando um nome de instância, a opção -s<nome_da_instância> deve ser adicionada. Exemplo: -sSQL2K8

4. Neste ponto o SQL Server será iniciado em single user mode e alterará o collate do servidor e todas as bases para o collate especificado na opção -q. Detalhe, lembre-se que este procedimento é NÃO Documentado, então não procure pelo parâmetro -q na lista de parâmtros do sqlservr.exe /? pois você não irá encontrá-lo 🙂

5. Ao final do processo tecle Ctrl+C e reinicie os serviços do SQL Server. Por exemplo utilizando o SQL Server Service Manager.

Para exemplificar, alterei o collate de SQL_Latin1_General_Cp1_CI_AI para SQL_Latin1_General_Cp1_CS_AS.

Como pode ser visto nas imagens acima que apresentam o ANTES e DEPOIS da execução do procedimento, se tiverem seguido tudo de forma correta, neste momento a instância do SQL Server, todas as bases de dados e suas respectivas tabelas e também colunas do tipo caracter estarão com o novo collation.

Compatibilidade

O procedimento foi testado com sucesso nas seguintes versões do SQL Server: SQL Server 2000, SQL Server 2005 e SQL Server 2008. Embora não tenha sido testado com o SQL Server 2008 R2, acredito que deve funcionar sem problemas.

Testes feitos a partir do SQL Server 2012 apresentaram o error abaixo, o que indica que a partir desta versão o parâmetro -q não é mais reconhecido 🙂

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn>sqlservr -m -T4022 -T3659 -q “Latin1_General_100_CS_AS”
2017-12-30 12:04:27.37 Server Error: 17112, Severity: 16, State: 1.
2017-12-30 12:04:27.37 Server An invalid startup option ‘q’ was supplied, e
ither from the registry or the command prompt. Correct or remove the option.
2017-12-30 12:04:27.38 Server SQL Server shutdown has been initiated

Obs: Como eu destaquei no início este é um procedimento não documentado e embora eu tenha tido a oportunidade de usá-lo em várias oportunidades com SQL200/2005/2008 e sem nenhum problema em todos eles, a utilização deste procedimento é por sua conta e risco.

Um abraços e boa sorte
Nilton Pinheiro

Avaliação:
Compartilhe:
  • Anterior Recuperar Database após corromper o Log de Transação12 anos atrás
  • Próximo Good list of resources for Virtualization, Consolidation, Security, Manageabilit12 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2022 MCDBA Brasil.