Como instalar SQL Server 2008 con Service Pack 1 incluido (slipstream)

Por Luis Ramirez 

He manejado un par de casos en los cuales una instalación fallida de SQL 2008 es solucionada con Service Pack 1 de SQL 2008. El detalle seria ¿Cómo instalar service pack si todavía no tengo SQL instalado?
Ahora, aun cuando no se tuviera problemas de instalación, desde el punto de vista de eficiencia, ¿Acaso no sería bueno si en la misma instalación de SQL pudiéramos instalar Service Pack 1?
Además, otra razón MUY importante por la cual es bueno considerar la instalación de service pack 1 sería que a partir del  12  de Enero del 2010 será un requerimiento para obtener soporte de parte de Microsoft .
Pues bueno, en SQL 2008 esto es posible y la solución se llama slipstream, el cual en Ingles se entiende como “ventaja del flujo/camino”, en nuestro caso tomar ventaja del medio (DVD) de instalación.
Microsoft libero el KB 955392 que habla sobre esto, pero digamos que si de por si el termino Slipstream no nos dice mucho a la gente de habla hispana, el KB es un poco confuso con los procesos y sus pasos. De hecho para mí fue necesario realizarlos en mi laboratorio para entender el funcionamiento.
Slipstream en SQL 2008 se puede realizar de dos formas:

  • BASICO: El cual es sencillo pero que se tendría que realizarse todos los pasos en cada instalación.
    Recomendado si solo se realizara la instalación una vez.
  • MERGE (Fusionado): Pasos son más elaborados y requiere de más tiempo. Pero una vez que se tenga la copia, se puede realizar para varias instalaciones en diferentes arquitecturas sin tener que hacer modificaciones y lo mejor, en un solo paso.
    Recomendado si se implementaran varias instalaciones.

Proceso 1 : El básico

  1. Instalar los siguientes prerrequisitos:
    - Para SQL 2008 Express Edition se necesita Microsoft .NET Framework 2.0 Service Pack 2
    - Cualquier otra edición de SQL 2008 requiere Microsoft .NET Framework 3.5 Service Pack 1
    - Windows Installer 4.5 Redistributable
  2. Descargar SOLO el SQL Server 2008 Service Pack 1 correspondiente a la arquitectura ya sea:
    - SQLServer2008SP1-KB968369-IA64-ENU.exe
    - SQLServer2008SP1-KB968369-x64-ENU.exe
    - SQLServer2008SP1-KB968369-x86-ENU.exe
  3. Extraer el contenido del archivo descargado desde una ventana de línea de comando corriendo el parámetro /X
    En este ejemplo descomprimimos la versión de 64 bits en una carpeta SP1 que será creada (en caso de no existir) en la unidad C:
    SQLServer2008SP1-KB968369-x64-ENU.exe /x:C:\SP1
  4. A continuación vamos a instalar SOLO el programa para actualizar el instalador de SQL el cual habilitara el parámetro que nos permitirá realizar el slipstream.
    Para esto, navegamos desde el Explorador de Windows a la trayectoria donde se encuentra el archivo sqlsupport.msi localizado en la carpeta que acabamos de descomprimir, le damos doble click y procedemos con su instalación.
    Siguiendo nuestro ejemplo (64 bits) nuestro  archivo estaría localizado en:
    C:\SP1\x64\setup\1033\sqlsupport.msi
  5. Después de la actualización, vamos a iniciar la instalación de SQL Server 2008. Se abre una línea de comando y se navega a donde se tenga los archivos FUENTES ORIGINALES de SQL Server ya sea DVD o en Disco local (si se copió localmente). NO confundir con los archivos descomprimidos del SP1.
    Desde ahí ejecutaremos el setup.exe especificando el parámetro /PCUSOURCE. Este parámetro apuntara a la carpeta donde descomprimimos el Sp1 (paso 3).
    Suponiendo que nuestro DVD de instalación este en la unidad D:
    D:\Setup.exe /PCUSource=C:\SP1
  6. Una vez hecho, si los pasos fueron exitosos se iniciara el proceso de instalación en donde podremos confirmar que se está leyendo del SP1 en el sumario de antes y después de la instalación.
    image

 

Proceso 2 : Merge (Fusionado)

  1. Copiar todo el contenido fuente del DVD a disco.
    Para nuestro ejemplo a la carpeta:
    C:\SQLServer2008_conSP1

  2. Descargar el SQL Server 2008 Service Pack 1 de TODAS las arquitecturas, recuerde que estamos realizando una versión para ser reusada en otros ambientes
    SQLServer2008SP1-KB968369-IA64-ENU.exe
    SQLServer2008SP1-KB968369-x64-ENU.exe
    SQLServer2008SP1-KB968369-x86-ENU.exe

  3. Extraer el contenido del sp1 desde una ventana de línea de comando corriendo el parámetro /X en la carpeta nueva PCU bajo SQLServer2008_conSP1 para cada archivo descargado.
    En este ejemplo descomprimimos TODAS LAS VERSIONES en una carpeta PCU que será creada (en caso de no existir) bajo la carpeta SQLServer2008_conSP1.
    SQLServer2008SP1-KB968369-IA64-ENU.exe /x:c:\SQLServer2008_conSP1\PCU
    SQLServer2008SP1-KB968369-x64-ENU.exe /x:c:\SQLServer2008_conSP1\PCU
    SQLServer2008SP1-KB968369-x86-ENU.exe /x:c:\SQLServer2008_conSP1\PCU

    Nota:Asegurar que este paso sea realizado para TODAS las arquitecturas.

  4. Copiar los archivos setup.exe y setup.rll recién descomprimidos de la carpeta PCU a la trayectoria raíz de nuestra carpeta SQLServer2008_conSP1
    Esto se realiza ejecutando el siguiente comando:
    robocopy C:\SQLServer2008_FullSP1\PCU c:\SQLServer2008_conSP1 Setup.exe
    robocopy C:\SQLServer2008_FullSP1\PCU c:\SQLServer2008_conSP1 Setup.rll

    Nota: Robocopy es una utilería de línea de comando robusta para transferencia de archivos. Está incluida en Windows Vista, Windows 7 y Windows 2008, para versiones anteriores favor de descargar el Windows Resource Kit.

  5. Para actualizar los archivos originales, hay que copiar todos los archivos descomprimidos a EXCEPCION de las carpetas y el archivo Microsoft.SQL.Chainer.PackageData.dll  desde:
    C:\SQLServer2008_conSP1\PCU\<arquitectura> 
    a
    C:\SQLServer2008_conSP1\<arquitectura>
    Esta operación se realiza ejecutando los siguientes comandos:
    robocopy C:\SQLServer2008_conSP1\pcu\x86 C:\SQLServer2008_conSP1\x86 /XF Microsoft.SQL.Chainer.PackageData.dll
    robocopy C:\SQLServer2008_conSP1\pcu\x64 C:\SQLServer2008_conSP1\x64 /XF Microsoft.SQL.Chainer.PackageData.dll
    robocopy C:\SQLServer2008_conSP1\pcu\ia64 C:\SQLServer2008_conSP1\ia64 /XF Microsoft.SQL.Chainer.PackageData.dll

    Este paso vendría ser el equivalente del paso 3 en el proceso BASICO donde actualizamos el instalador.

    Nota: Si por accidente se sobrescribe el archivo Microsoft.SQL.Chainer.PackageData.dll obtendrás error 0x84BF007 en la instalación.

  6. Localizar el archivo defaultsetup.ini en las siguientes trayectorias:
    C:\SQLServer2008_conSP1\x86
    C:\SQLServer2008_conSP1\x64
    C:\SQLServer2008_conSP1\ia64

    En caso de NO existir el archivo defaultsetup.ini, se crea un simple archivo de texto en cada carpeta mencionadas arriba con el nombre de defaultsetup.ini  que tendrá el siguiente contenido:
    ;SQLSERVER2008 Configuration File
    [SQLSERVER2008]

    En cada archivo agregar el siguiente parámetro PCUSOURCE ="{trayectoria}\PCU".
    Nota:
    Trayectoria despenderá desde DONDE se ejecutara el setup.exe, esto es, si es local seria:
    C:\SQLServer2008_conSP1\PCU
    Si fuera una carpeta compartida (share) entonces cambiaria a
     \\Servidor\SQLServer2008_conSP1\PCU

    Para nuestro ejemplo el archivo seria:
    ;SQLSERVER2008 Configuration File
    [SQLSERVER2008]
    PCUSOURCE="C:\SQLServer2008_conSP1\PCU"

  7. Una vez hecho, si los pasos fueron exitosos se iniciara el proceso de instalación en donde podremos confirmar que se está leyendo del SP1 en el sumario antes y después de la instalación.
    image

Mayor Información: