Probleminhas na instalação do SQL Server 2008

Tempo de leitura:3 minuto(s)

Estou instalando o recém lançado SQL Server 2008, mas tudo indica que ele vem com alguns probleminhas na instalação.

Se você usa Windows Vista instalado originalmente não em inglês, pode ter problemas na instalação. Na hora de rodas o check de instalação recebe um erro:

Setup Sql Server 2008 - configuration checker com erro

Pois bem, pesquisei em alguns lugares e percebi que o problema rola faz tempo, mas mesmo assim não foi resolvido ainda. Segui o recomendado no fórum, mas não resolveu o problema. A idéia seria pegar o ID da lingua de instalação do seu windows, e adicionar ela no registro.

Para pegar esse ID, seria só rodar:

string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0"); 

Para mim retorna 016.

E adicionar ao registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

Ficaria assim:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\016

Copiando os valores “Counter” e “Help” de alguma outra chave, tipo a 009, para essa nova chave.

Pois bem, fiz isso, não rolou. Estou postando aqui o que fiz para resolver, porque vocês podem ter o mesmo problema.

Por causa da dica no Microsoft Connect colocada por um chinês, fiz um trace do problema à dll Microsoft.SqlServer.Configuration.SetupExtension.dll. O método CheckPerfMonCounter da classe FacetPerfMonCheck, faz uma rotina um pouco diferente da esplicada nos fóruns. Copiei e rodei. Resultado: 0416. Eu já tinha essa chave no meu registro, foi só acrescentar e copiar os valores “Counter” e “Help”:

Registry Editor - após alteração

E funcionou. Sem grandes stress. Mas teve que investigar…

A função para saber o id da sua lingua é a seguinte:

string name = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib";
string str2 = null;
int major = Environment.OSVersion.Version.Major;
int lCID = CultureInfo.InstalledUICulture.LCID;
if ((major >= 6) && (((lCID == 0x404) || (lCID == 0x804)) || (lCID == 0x416)))
{
    str2 = string.Format("{0,4}", lCID.ToString("X")).Replace(" ", "0");
}
else if (0x7c04 == CultureInfo.InstalledUICulture.Parent.LCID)
{
    str2 = "004";
}
else
{
    str2 = string.Format("{0,3}", CultureInfo.
           InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");
}

 

Rode isso, o valor retornar em str2 é a chave que você precisa. Pelo que eu entendi, tem um tratamento especial para o Português brasileiro, que é o 0x416 em Hexa. Se for esse, ele chama a linha 7, senão ele chama a linha 15. O segundo elseif deve ser o do inglês, que retorna 004.

Enfim, espero que ajude quem está no enrosco nessa instalação.

Autor: Giovanni Bassi

Arquiteto e desenvolvedor, agilista, escalador, provocador.
Programa porque gosta, e começou a trabalhar com isso porque acha que trabalhar como administrador é meio chato. Por esse motivo sempre diz que nunca mais vai virar gerente de ninguém. E também porque acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é melhor que hierarquia. Mas isso é outro assunto.
Foi reconhecido  Microsoft MVP depois que alguém notou que ele não dormia a noite pra ficar escrevendo artigos, cuidando e participando do .Net Architects, gravando o podcast Tecnoretórica, escrevendo posts no blog e falando o que bem entende no twitter @giovannibassi. E por falar nisso é no twitter que conta pra todos que gerencia de projetos deve ser feita pelo time e não por um gerentes, que greves em TI são coisas sem sentido e que stored procedure com regras de negócio são malígnas.
Você já deve ter percebido (até porque está lá na primeira frase) que Giovanni é agilista. De tanto gostar disso ele trouxe os programas de certificação e treinamento  PSD e PSM da Scrum.org pro Brasil, e por causa deles, do MVP e de algum trabalho que aparece tem que ficar indo pros EUA de vez enquando, coisa que prefere não fazer. (É bem comum você ouvir ele perguntando porque a Scrum.org e a Microsoft não estão na Itália, por exemplo.)
Junto com alguns Jedis criou a Lambda3, que, apesar de ser pequena e de não ser muito comum no Brasil, insiste em fazer projetos e consultoria direito. Por causa da Lambda3 ele tem trabalhado mais do que quando era consultor independente, mas menos do que a maioria das pessoas. Quer dizer, isso se você considerar que os trabalhos junto à comunidade não são trabalho, caso contrário ele trabalha mais que a maioria das pessoas.
Recentemente ele resolveu que merecia viver melhor e ganhar uns anos de vida e desistiu de ser sedentário, fazendo algum barulho de vez em quando com os amigos no twitter com a hashtag #DotNetEmForma. Por causa do convite recente de amigos do lado Open Source (que ele respeita e admira), começou a escalar, e agora está sempre com as mãos machucadas. Mas ainda dá pra programar. Você encontra ele sempre em algum evento, como o TechEd, e o DNAD, mas também outros menos comuns para o pessoal do .NET, como a RubyConf. Nesses eventos, ou ele está vendo palestras, ou batendo papo com alguém, ou codando alguma aplicação que alguém achou que dava pra fazer durante o evento.

  • GUI

    Acho que estou com o mesmo problema. Estou tentando usar o PaintBrush no Windows 3.1 mas não tá rolando.

  • JG

    Também tive o mesmo problema com o Vista 32 SP1 versão PT de Portugal, e utilizei a tua solução para a minha versão deu o valor 016.
    Obrigado o teu blog já está nos meus favoritos.

  • cpereira

    Tive o mesmo problema com Vista 32, utilizei a solução apresentada e resolveu o problema. Muito obrigado

  • Ronaldo

    Estou Com Este Erro no Finnal da Instalação
    Estou tentando instalar o SQL SERVER 2008 NO WINDOWS SERVER 2003 SP 2 FRAMEWORK 3.5 SP1 WI 4.5
    não foi possivel encontrar o identificador de inicialização do mecanismo do banco dados

  • Paulo

    Como se vê, se não for um especialista simplesmente não se consegue instalar essa "maravilha" da Microsoft. Alguém, como eu, que é somente um iniciante, jamais conseguirá instalar o SQL 2008 Express. Já formatei minha máquina, instalei todos os programas requeridos e nada feito. Continua aparecendo alguma mensagem indecifrável e, o pior, sem qualquer mostrar nenhum caminho para a solução. Vou desistir.

  • rafael

    eu estou com o mesmo problema no windows 2008 e nao consigo resouver .

    sera q alguem poderia dar alguma dica de como resouver isso ? ?

  • eddiegleyson

    por favor mim ajudem estou com problema na instalacao do sql server 2008 manag no arquivo microsoft.net mim digào o que fazer eu rodo o win7 ultimate 64 bit eu ja tinha instalado antes e tinha dado certo so que dessa vez deu erro

  • Janilton Barros

    estou com o problema de que quando vou instalar ele pede pra reiniciar e eu reinicio, mais sempre aparece a mesma msg pedindo pra reiniciar. alguém tem a solução ?

  • Jampa Sud

    nao consigo selecionar os termos da licença sql…faz mais de 15 dias q estou tentando instalar em meu notebook o sql e nada, já tentei outras versões mas foi em vão, todas as vezes q tento abre a janela pedindo para selecionar os termos de licença e aceitar e não consigo, é como se travasse , já troquei de mouse, e sem mouse, usei tab para selecionar e nada , já tentei atualizar o windows installer, os framework, tudo e não consigo e necessito urgente do sql para estudos da faculdade…