Instalación de SQL Server 2012 en Windows 2012 Core.
Por Luis Ramirez
Entre las versiones de Sistema Operativo que tenemos esta Core, la cual es una versión de servidor ligera con solo lo indispensable para funcionar. Debido a esto se requiere menos administración, espacio en disco, uso de memoria, requerimientos de servicio, muy rápido de cargar y menos propenso a ataques.
Su administración puede llevarse a cabo con ventana de comando, Windows PowerShell o remotamente por medio de una consola MMC.
Esta versión “Core” ha estado disponible desde Windows Server 2008, pero es hasta Windows 2012 donde se soporta la instalación de SQL Server 2012 y en este blog hablare sobre cómo hacer la instalación que aun cuando parece fácil tiene su reto.
Parte I. El Sistema Operativo.
Iniciamos con Windows 2012, el cual como mencionamos su interfaz gráfica será una ventana de comando. Suponiendo que es una nueva instalación necesitaremos configurar lo básico y para esto vamos a usar el comando sconfig
El cual desplegara el siguiente menú:
Vamos a configurar el servidor para tenerlo dentro del Dominio, por lo tanto seleccionamos opción [8] “Network Settings” para configurar la red y después dependiendo nuestro adaptador de red el numero al cual este asignado, en nuestro caso “13”.
Vamos a configurar el servidor para tenerlo dentro del Dominio, por lo tanto seleccionamos opción [8] “Network Settings” para configurar la red y después dependiendo nuestro adaptador de red el numero al cual este asignado, en nuestro caso “13”.
Después número [1] para el adaptador de red “Set Network Adapter Address”
Seleccionar [S] para la IP estática “(s)tatic” y ponemos la direcciones
A continuación vamos a configurar los servidores DNS del menú de opción del Adaptador de red seleccionamos la opción [2] “Set DNS Servers” e introducimos la IP de nuestro servidor DNS
Al finalizar se nos muestra un resumen de lo configurado a nivel red:
Ahora opción [4] “Return to Main Menu” y de ahí seleccionamos opción [1] “Domain Workgroup” y ponemos el nombre del dominio
Después de la validación con las credenciales del dominio veremos el siguiente resumen:
Nota:
Si por alguna razón se cierra la ventana de comando, se puede presionar la combinación de teclas [CTRL] + [ALT] + [DELETE] abrir “Task Manager”, seleccionar “More Details”. En el menú de “File” seleccionar “Run new task” y después cualquiera de las opciones Cmd.exe o Powershell.exe.
SQL Server 2012 tiene los siguientes prerrequisitos de roles:
.NET Framework 2.0 SP2 (Incluido en Server Core)
.NET Framework 3.5 SP1 Full Profile
.NET Framework 4 Server Core Profile (Incluido en Server Core)
Windows Installer 4.5 (Incluido en Server Core)
Windows PowerShell 2.0 (Incluido en Server Core)
Se puede revisar el estado tecleando desde la línea de comando powershell.exe
Desde ahí podemos ejecutar el comando de powershell “Get-WindowsFeature” para generar una lista de roles
Y la instalación de un Role seria con “Install-WindowsFeature <featurename>”, por ejemplo si faltara .NET 4.5 se correría:
Install-WindowsFeature Net-Framework-45-Core
Y después listamos confirmando que .NET se encuentra instalado
La siguiente parte serian habilitar el puerto default 1433 que utiliza SQL Server por medio de PowerShell,
New-NetFirewallRule -DisplayName “SQL Server default port” -Direction Inbound –Protocol TCP –LocalPort 1433
Parte II. La instalación de SQL Server y problemas que puedes tener
Una vez preparado el Sistema Operativo iniciamos con la instalación y esto se realiza desde la línea comando, ya con los archivos de instalación en el servidor se corre:
Setup.exe /qs /ACTION=Install /FEATURES=SQLEngine,AS,IS,Replication,Conn /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="Dominio\SQLServer" /SQLSVCPASSWORD=Passw0rd003! /SQLSYSADMINACCOUNTS="Dominio\Administrator" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /IAcceptSQLServerLicenseTerms /TCPENABLED=1 /PCUSource=”C:\Temp\PCUSource"
Si se tiene un error con los parámetros se puede generar el siguiente error:
…
El cuál fue mi caso, por lo tanto estuve un tiempo revisando línea por línea hasta que me di cuenta que el problema no era con el parámetro “/IAcceptSQLServerLicenseTerms” sino que al agregar los servicios de Analysis Services tenía que poner la cuenta asociada (“/ASSYSADMINACCOUNTS ="Dominio\Administrator””), por lo cual la línea cambio a :
Setup.exe /qs /ACTION=Install /FEATURES=SQLEngine,AS,IS,Replication,Conn /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="Dominio\SQLServer" /SQLSVCPASSWORD=Passw0rd003! /SQLSYSADMINACCOUNTS="Dominio\Administrator" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /ASSYSADMINACCOUNTS ="Dominio\Administrator" /IAcceptSQLServerLicenseTerms /TCPENABLED=1 /PCUSource="C:\Temp\PCUSource"
Despues vi la interface de comando indicando avanzes en la instalacion
…
… Hasta terminar con la instalación:
El siguiente paso es confirmar que los servicios de SQL están corriendo, para lo cual corremos la siguiente consulta:
sc query MSSQLServer
sc query SQLServerAgent
Como podemos ver los servicios del Agente no están corriendo, para iniciar se corre:
sc start SQLServerAgent
Listamos para confirmar que está corriendo:
sc query SQLServerAgent
Ahora vamos a conectarnos desde un cliente remoto que tenga la interfaz gráfica de “SQL Server Configuration Manager” al servidor Core “YOLOTL” (Corazón en Náhuatl)
Desde aquí podemos confirmar el nombre de la instancia y que la versión ya tiene incluido el Sp1 (slipstream)
Intentamos conectarnos desde SQL Server Analysis Services.
Pero recibí un error de que no se pudo conectar:
Al revisar el estatus del servicio de SSAS vemos que está corriendo:
Por lo tanto el problema vendría siendo el puerto, que como lo indica el mensaje es 2383.
Vamos a crear una regla en el Firewall para SSAS, entonces desde powershell correr
New-NetFirewallRule -DisplayName “SQL Server Analysis default port” -Direction Inbound –Protocol TCP –LocalPort 2383
Get-NetFirewallRule -Displayname “*SQL*”
Confirmamos que nos podemos conectar exitosamente desde “SQL Management Studio”
El siguiente paso es el SQL Server Integration Services, abrimos la conexión
Y fallo con el error:
Confirmamos que SSIS está corriendo:
La segunda es una excepción para el ejecutable MsDtsSrvr.exe
New-NetFirewallRule -DisplayName "Allow SSIS" -Direction Inbound -Program "C:\Program Files\Microsoft SQL Server\110\DTS\Binn\MsDtsSrvr.exe" -Action Allow
Nos vamos otra vez a SQL Server Management Studio e intentamos conectarnos al servidor
Y con esto confirmamos que los servicios de SQL instalados están corriendo exitosamente y pueden ser accesados.
Les recuerdo que para otros servicios como mirroring o instancias nombradas se tendrá que hacer su respectiva regla en el Firewall.
Mas información.
Configure a Server Core Server with Sconfig.cmd
https://technet.microsoft.com/en-us/library/jj647766.aspx
Install Server Roles and Features on a Server Core Server
https://technet.microsoft.com/en-us/library/jj574158.aspx
Windows Firewall with Advanced Security Administration with Windows PowerShell
https://technet.microsoft.com/library/hh831755.aspx
Hardware and Software Requirements for Installing SQL Server 2012
https://msdn.microsoft.com/en-us/library/ms143506.aspx
Use Windows PowerShell Commands in Windows Server 2012
Do you get the error: "You must provision the system with at least one system administrator" while installing SQL 2008 through command line?
SQL Server on Windows Server Core - part 1 Server Core installation