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

image

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”.

image

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”.

image

Después número [1] para el adaptador de red “Set Network Adapter Address”

image

Seleccionar [S] para la IP estática “(s)tatic” y ponemos la direcciones

image

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

 

image

Al finalizar se nos muestra un resumen de lo configurado a nivel red:

image

Ahora opción [4] “Return to Main Menu” y de ahí seleccionamos opción [1] “Domain Workgroup” y ponemos el nombre del dominio

image

Después de la validación con las credenciales del dominio veremos el siguiente resumen:

image

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

image

Desde ahí podemos ejecutar el comando de powershell “Get-WindowsFeature” para generar una lista de roles

image

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

image

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

image

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"

image

Si se tiene un error con los parámetros se puede generar el siguiente error:

image

image

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"

image

Despues vi la interface de comando indicando avanzes en la instalacion

image

image

… Hasta terminar con la instalación:

image

El siguiente paso es confirmar que los servicios de SQL están corriendo, para lo cual corremos la siguiente consulta:
sc query MSSQLServer

image

sc query SQLServerAgent

image

Como podemos ver los servicios del Agente no están corriendo, para iniciar se corre:

sc start SQLServerAgent

image

Listamos para confirmar que está corriendo:

sc query SQLServerAgent

image

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)

image

Desde aquí podemos confirmar el nombre de la instancia y que la versión ya tiene incluido el Sp1 (slipstream)

image

Intentamos conectarnos desde SQL Server Analysis Services.

image

Pero recibí un error de que no se pudo conectar:

image

Al revisar el estatus del servicio de SSAS vemos que está corriendo:

image

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

image

Get-NetFirewallRule -Displayname “*SQL*”

image

Confirmamos que nos podemos conectar exitosamente desde “SQL Management Studio”

image

El siguiente paso es el SQL Server Integration Services, abrimos la conexión

image

Y fallo con el error:

image

Confirmamos que SSIS está corriendo:

image

image

La segunda es una excepción para el ejecutable MsDtsSrvr.exe

image

New-NetFirewallRule -DisplayName "Allow SSIS" -Direction Inbound -Program "C:\Program Files\Microsoft SQL Server\110\DTS\Binn\MsDtsSrvr.exe" -Action Allow

image

Nos vamos otra vez a SQL Server Management Studio e intentamos conectarnos al servidor

image

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

http://technet.microsoft.com/en-us/library/jj647766.aspx

Install Server Roles and Features on a Server Core Server

http://technet.microsoft.com/en-us/library/jj574158.aspx

Windows Firewall with Advanced Security Administration with Windows PowerShell

http://technet.microsoft.com/library/hh831755.aspx

Hardware and Software Requirements for Installing SQL Server 2012

http://msdn.microsoft.com/en-us/library/ms143506.aspx

Use Windows PowerShell Commands in Windows Server 2012

http://blogs.technet.com/b/wsnetdoc/archive/2012/06/14/use-windows-powershell-commands-in-windows-server-2012.aspx

Do you get the error: "You must provision the system with at least one system administrator" while installing SQL 2008 through command line?

http://blogs.technet.com/b/jks/archive/2009/04/24/do-you-get-the-error-you-must-provision-the-system-with-at-least-one-system-administrator-while-installing-sql-2008-through-command-line.aspx

SQL Server on Windows Server Core - part 1 Server Core installation

http://blogs.technet.com/b/andrew/archive/2011/08/12/sql-server-on-windows-server-core-part-1-server-core-installation.aspx