Cuando me planteé instalar SQL Server 2012 para aprender las novedades y comenzar a utilizarlo en nuevos desarrollos de software, pensé en principio en instalarlo sobre el mismo laptop sobre el que habitualmente trabajo. Pero antes de comenzar, busqué en Internet comentarios al respecto por si acaso existía alguna incompatibilidad con las versiones anteriores. Lamentablemente, parece ser que sí que hay algunos inconvenientes. Encontré varios artículos que mencionaban que al instalar la versión 2012 junto con la 2008 se producen algunos problemas en Business Intelligence Development Studio (BIDS). Dado que en mi caso esta herramienta resulta imprescindible para mi trabajo, descarté de momento correr el riesgo de instalar SQL Server 2012 directamente sobre la misma máquina.
El remedio habitual en estos casos es el de instalar el software “conflictivo” en una máquina virtual, de forma que no interfiera con el equipo nativo con el que se desean evitar las incompatibilidades. En mi laptop dispongo de Virtual PC 2007, que utilizo para ejecutar numerosas máquinas virtuales que tengo ya configuradas con distintas versiones de sistema operativo y herramientas diversas.
Por desgracia, durante la instalación de SQL Server 2012 en Virtual PC aparecen varios mensajes de error, y finalmente el producto no queda correctamente instalado; entre otras cosas, no arranca el motor de base de datos. Buscando respuestas en los foros públicos, encontré que este problema no sólo me ocurre a mí, sino que es un defecto conocido que impide instalar SQL Server 2012 de esta manera. De hecho, las especificaciones oficiales (http://msdn.microsoft.com/es-es/library/ms143506.aspx) indican que la única tecnología de virtualización soportada es Hyper-V.
Decidí, pues, instalar SQL Server sobre una máquina virtual bajo Hyper-V. Esto requiere que el “host” sea Windows Server 2008 o 2008R2, que no es adecuado para instalarlo en un laptop, y en consecuencia no es la solución ideal para mis necesidades particulares. Pero sí dispongo de un servidor con Windows Server 2008 R2, y sobre él realicé la instalación.
Una vez instalado y probado, lo que hice fue copiar el disco virtual (.vhd) y reconvertirlo para que funcionase en Virtual PC (conversión que no es inmediata, ya que requiere remplazar el HAL.DLL, pero está bien documentada en varios blogs y foros). Después de eso, arranqué la máquina convertida en Virtual PC, y SQL Server 2012 funcionó correctamente en este entorno. No lo he probado a fondo, pero todos los experimentos que he hecho con él han funcionado correctamente. En apariencia, el comportamiento de SQL Server 2012 en Virtual PC es impecable, y únicamente es el Setup el que falla.
Resumo a continuación los pasos necesarios, por si alguno de los lectores desea reproducir el proceso:
- Añadir en Hyper-V una nueva máquina virtual. Crear un nuevo disco virtual con espacio suficiente (yo utilicé 64 GB), y asignar una conexión de red con salida a Internet (la necesitaremos luego para actualizar el sistema operativo de la máquina virtual).
- Instalar dentro de la máquina virtual Windows Server 2008 en 32 bits. No puede ser la R2 porque solo existe en 64 bits. Y necesitamos un sistema de 32 bits para poder luego migrarlo a Virtual PC (otros productos de virtualización, como VMware o VirtualBox sí que son capaces de virtualizar en 64 bits, pero Virtual PC no nos da esa opción).
- Aplicar a Windows 2008 el último Service Pack, y las distintas actualizaciones ofrecidas por Windows Update. Si no lo hacemos, la instalación de SQL Server se inicia, pero posteriormente falla indicando que le faltan algunos prerrequisitos (como PowerShell 2.0 o una versión actualizada de .Net Framework).
- Instalar, por fin, SQL Server 2012, configurarlo y comprobar que funciona.
- Parar la máquina virtual y hacer una copia del .vhd.
- Montar ese .vhd como disco secundario en una máquina virtual de Virtual PC cuyo disco primario esté ya configurado para arrancar con la misma versión de Windows Server 2008.
- Arrancar la máquina virtual, y copiar el archivo HAL.DLL desde la carpeta \Windows\System32 del disco de arranque a la misma carpeta en el disco secundario. Será necesario tomar posesión del HAL.DLL que ya existe en la carpeta de destino y cambiarle los permisos, ya que de forma predeterminada no nos dejará sobrescribirlo.
- Parar la máquina virtual, desmontar el disco secundario, y montarlo como disco primario de una nueva máquina virtual.
- Arrancar esta nueva máquina desde Virtual PC. Debería arrancar correctamente Windows Server 2008, y en su interior funcionará SQL Server 2012.
- Opcional (pero muy útil): podemos instalar los Componentes de Integración desde el menú de Virtual PC (no valen los que venían de Hyper-V, dependían del HAL.DLL que nos hemos “cargado”).
- Después de eso, apagar la máquina y salvar los cambios (si teníamos habilitados los “discos para deshacer”).
Y eso es todo. Para quienes utilicen Virtual PC y no deseen cambiar de tecnología de virtualización, esto permite disponer de SQL Server 2012 en una máquina virtual.








