lunes, 8 de febrero de 2010

Instalando SQL 2008 what a pain in the ass

Que onda hace rato que no me aparecia, bueno hoy me di cuenta que ando algo oxidado porque no he probado el visual studio 2008 que ya se hace viejo y se enfila el 2010, sin embargo me decidi por instalar la version express y ver que onda.

Nada fuera de lo común entrar a la pagina de microsoft bajar el C# express y el Visual Web Developer que ahroa viene con un instalador unificado que te ofrece otras cosas no esta mal, mi dolor de cabeza empezo a la hora de instalar SQL 2008, se descargo y todo hiba bien hasta que la instalación trono!, vaya que sorpresa... obviamente el instalador de refirio al log que de inmediato abrí, bueno pues me encontre con este mensaje:

El subárbol del Registro de contadores de rendimiento está dañado. Para continuar, debe reparar éste subárbol.


Bueno a juzgar por la descripción se trataba de algun registro de rendimiento local, abri el monitor de rendimiento el "perfmon.exe" no se veia nada extraño así que segí, el log tambien me refirio a un KB de microsoft que resulto inutil al ser para Win XP no aplicaba a vista, asi que dije le preguntare a google, ¿porque no? despues de HORAS de búsqueda me di cuenta que no era el único con este problema, parece afectar a usarios de Vista que desean instalar SQL 2008 en una computadora con un idioma que no sea Ingles (que genialidad de programadores) segun este bug report (que me ayudo mucho ;) ) y algunas cosas que vi en foros el problema parece radicar que el instalador busca cierta información en una llave de registro inexistente en sistemas con idiomas que no son Ingles.

Afortunadamente el buen tipo que posteo ese bug (link un poco arriba) hizo algunas pruebas y se dio cuenta de donde radicaba el problema y planteaba una solución, usando c#, el dejó el código en la página del reporte (son 2 líneas nomas) estas te avisan que llave de registro esta buscando el instalador, la idea es crearla y llenarlas con la información que viene en la llave que es de idioma ingles y con esto el instalador de SQL ya no se queja.

Bueno estoy feliz con la ayuda de ese amigo así que para no aburrirme de avente un programita que usa su idea para poner las llaves de registro adecuedas, basicamente córrelo si tuviste ese problema para instalar SQL, despues reinicia la instalción y listo =) ojala les sirva.

Código aca abajito :) Descargar


using System;
using System.Security.Permissions;
using Microsoft.Win32;
using System.Globalization;

[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum,
ViewAndModify = "HKEY_LOCAL_MACHINE")]

class RegKey
{
static void Main()
{
Console.WriteLine("\n" + "Estas listo para empezar? (Y/N)");

if(char.ToUpper(Convert.ToChar(Console.Read()))=='Y')
{
string strPath = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib\\";

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


Console.WriteLine("Agregando llaves de registro...");


RegistryKey regKey = Registry.LocalMachine.CreateSubKey(strPath + str2);

string counter = (string)regKey.GetValue("Counter");
string help = (string)regKey.GetValue("Help");

regKey.SetValue("Counter", counter, RegistryValueKind.MultiString);
regKey.SetValue("Help", help, RegistryValueKind.MultiString);

Console.WriteLine("Todo debe estar listo, Instala SQL 2008 de nuevo =)");
Console.WriteLine("http://diario-geek.blogspot.com/");
Console.ReadKey(true);


}
else
{
Console.WriteLine("Como gustes :)");
Console.ReadKey(true);
}
}
}

21 comentarios:

  1. Que tal Jorge.. ¿?
    Espero que bien.. mira yo estoy con el mismo problema.. de hecho baje el código y lo heché a correr, cosa que no me dio resultado, quizás es porque lo hice correr en un server 2003?, ya que es ahí donde lo necesito tener instalado, ya tengo 2 versiones instalado en mi servidor, el sql 2000 sp3 y sql 2005, y no tengo problemas.

    Tienes alguna idea de como poder corregirlo? aun no he dado con la solucion... muchos saludos.

    ResponderEliminar
  2. Hola, mira la verdad no se decirte, según lo que leí este error se producía el instalar sql 2008 no se si el mismo método sera compatible para otras versiones, ademas cabe destacar que esto lo hice para una maquina corriendo "Vista" no XP, otra cosa importante, en mi caso, aunque el problema que arrojaba era que los subarboles de rendimiento estaban dañados, realmente no lo estaban, pero si es el tuyo ahy diferentes métodos que puedes tratar:

    En windows vista para reconstruir el subarbol de rendimiento usa este comando corriendo el cmd como administrador:

    "lodctr /R"

    eso debe repararlos, ahora si es xp o si este método no te funciono intenta las sugerencias de éste artículo:

    Otros métodos


    Espero te sirva :)

    ResponderEliminar
  3. le hechare un vistazo.. aun no puedo encontrar una solucion.. pero estoy seguro que se instalan unos parches.. igual se agradece.. te comento como me fue

    Juan

    ResponderEliminar
  4. Ojala te sirva, surte!, igual si lo logras hacer de otra manera seria genial que lo postearas aquí para que otros puedan resolverlo.

    :)

    ResponderEliminar
  5. termo no se puede bajar podrias subirlo nuevamente gracias

    ResponderEliminar
  6. al momento de ejecutar me dice que no tengo permisos para crear una clave............. que hago?

    ResponderEliminar
  7. Es simple, lo que pasa es que nadie explica bien, parecen que no fueran programadores sino filosofos para decir las cosas enredado.

    1. En el editor de registro en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib, creeen una clave de nombre 00A.

    2. Creen una nueva entrada de tipo valor de cadena multiple con nombre Count

    3. Creen una nueva entrada de tipo valor de cadena multiple con nombre Help, hasta aqui deberian tener 3 entradas: predeterminado, Count y Help.

    3. Ahora En HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib, existe la clave de nombre 009, y existe dos entradas: Count y Help. Se debe copiar el valor que tienen estas entradas y asignarlo respectivamente (Count a Count y Help a Help) a las que se crearon en la clave 00A.

    Y listo prueben la instalacion

    ResponderEliminar
    Respuestas
    1. la verdad le falta el help a mi 009 y no se como ponerlo no quiere agregar ni copiar ni nada solo dice :(no se puede crear el valor : error al escrivir en el registro )

      Eliminar
    2. Efectivamente como comenta este noble señor,la gente le da dos vueltas de tuercas a las soluciones.Lo que hace el código d eaqui arriba es exactamente lo que explican aqui pero haciéndolo manuelmente en el registro de edición, solo que lo que el comenta les funcionará y si ejecutan el código les saltará una excepción por no tener permisos para modificar el registo de edición.Esta respuesta funciona a la perfección. Muy buen aporte.

      Eliminar
    3. Muy Buen aporte Funciona!!!... de verdad muy agradecido...

      1. En el editor de registro en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib, creeen una clave de nombre 00A.

      2. Creen una nueva entrada de tipo valor de cadena multiple con nombre Counter

      3. Creen una nueva entrada de tipo valor de cadena multiple con nombre Help, hasta aqui deberian tener 3 entradas: predeterminado, Counter y Help.

      3. Ahora En HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib, existe la clave de nombre 009, y existe dos entradas: Counter y Help. Se debe copiar el valor que tienen estas entradas y asignarlo respectivamente (Counter a Counter y Help a Help) a las que se crearon en la clave 00A.

      Y listo prueben la instalacion.

      Eliminar
    4. Excelente respuesta :) muchas gracias enserio

      Eliminar
  8. Gracias a la última publicación del "anónimo" !!! funcionó perfectamente !

    ResponderEliminar
  9. Muchas gracias "anonimo", funciono a la primera!, aunque las entradas en 009 son Counter en lugar de Count :)

    Saludo!

    ResponderEliminar
  10. Gracias 100% agradecido

    ResponderEliminar
  11. intente bajar el programiat para reparar el registro del contador de rendimiento pero parece q ya no esta lo puedes subir de nuevo por fa
    Gracias
    Jorge

    ResponderEliminar
  12. Anónimo Jun 29, 2011 08:47 AM

    TU ERES EL PUTO JEFE - GRACIAS

    RRM

    ResponderEliminar
  13. Muchas Gracias!! en Internet habían mil soluciones y nada, pero la solución correcta es la que dio Anónimo el 29 de junio de 2011, 9:47
    Uff Me dieron un gran alivio!!!

    ResponderEliminar
    Respuestas
    1. Instale Sql Server 2008 R2 en Windows Server Standard 2012

      Eliminar

Deja tu comentario aquí, cuenta que te parecio el artículo o simplemente saluda!