Instalar y configurar SQL 2019 Developer (gratuito) paso a paso

En este post te voy a mostrar como instalar y configurar SQL Server 2019 edición Developer gratuita paso a paso.

También te dejo el video tutorial del mismo

¿Que es SQL Server 2019 Developer?

La edición Developer es gratuita y tiene las mismas funcionalidades que la edición Enterprise (la más grande del producto).

Esta edición está pensada para que podamos instalarla en nuestros ambientes de desarrollo o testeo (no se puede instalar en ambientes productivos).

Es ideal para que nuestro equipo de desarrollo pueda desarrollar y probar sus aplicaciones en SQL Server sin la necesidad de contar con una licencia para ello.

En 2019 al igual que 2017 SQL Server se puede instalar en Windows, Linux o contenedores (Docker), en este post veremos como instalar y configurar esta edición sobre Windows

Requerimientos para la instalación

  • Windows 10 TH1 1507 o una versión superior / Windows Server 2016 o una versión posterior
  • .NET Framework
  • 1GB de RAM mínimo
  • 6GB de espacio disponible en el disco
  • Procesador x64 2.0 GHZ o superior

Pasos para la instalación y configuración

En este post vamos a instalar un SQL Server 2019 developer sobre un Windows Server 2019 (pero recuerde que se puede instalar sobre un Windows 10 también) ambos en idioma inglés (usted podría instalarlos en idioma español si lo desea)

Paso 1: Descargar el medio

Como primer paso debemos descargar desde la pagina de Microsoft el medio de instalación de SQL Server 2019 edición desarrollo para Windows.

Eso lo podemos hacer desde el siguiente vínculo

https://go.microsoft.com/fwlink/?linkid=866662

Paso 2: Ejecutar el instalador

Luego de descargar nuestro instalador, lo que haremos es ejecutarlo para poder iniciar la instalación , al hacerlo nos aparecerán las siguientes opciones

Basic: Descarga los archivos desde la web y realiza una instalación toda por defecto (yo no la recomiendo)

Custom: Descarga los archivos desde la web y permite realizar una instalacion personalizada (es una buena opcion si no necesitamos distribuir el medio y tenemos buen ancho de banda de internet)

Download Media (Mi preferida): Primero descarga los archivos en un .ISO para que luego podamos montarlo como unidad y ejecutar el instalador del producto. Esta es mi opción preferida ya que me permite tener el .iso y luego desentenderse de internet .

En mi caso usaré la opción Download Media para lo cual me pide los siguientes datos

Le damos al botón de Download para así empezar con la descarga de los archivos en la ubicación que hemos seleccionado , en mi caso “c:\users\triggerdb\downloads”

Al terminar con la descarga debemos buscar nuestro .iso para hacer la instalación

Paso 3: Instalar SQL Server 2019 edición desarrollo

En este ejemplo como he bajado el .iso ahora voy a la carpeta donde está y lo abrimos , simplemente haciendo doble clic con el mouse

Ahora debemos iniciar la instalación por medio del archivo Setup.exe

Ahora seleccionamos la opción de installation y el tipo de instalación (en nuestro caso Stand-Alone)

En la siguiente pantalla del setup nos preguntará la edición a instalar y su llave en donde seleccionaremos “Developer” y no es necesario poner ninguna llave. Luego de damos al botón Next

En la siguiente ventana nos aparecerá el contrato de Licencia en donde si queremos avanzar debemos aceptar sus términos y condiciones, para luego continuar con nuestra instalación

La siguiente opción del instalador nos preguntará si deseamos incluir las actualizaciones en el proceso (SQL Server al igual que todo otro producto recibe de forma periódica actualizaciones y como buena práctica se aconseja tener la última posible).

A mi me gusta bajar por separado las actualizaciones pero tranquilamente se pueden incluir en el setup, lo hago por separado para yo poder controlar que actualizacion tener y si tengo en mi empresa más de un SQL Developer poderlos tener iguales.

En el siguiente enlace se encuentran las actualizaciones para descargar

https://docs.microsoft.com/en-us/sql/database-engine/install-windows/latest-updates-for-microsoft-sql-server?view=sql-server-ver15

En el próximo paso de la instalación se hacen una serie de validaciones y si hay alguna advertencia o error lo veremos, por ejemplo en mi caso me está advirtiendo que no tengo configurado el Firewall para SQL Server y si esto no lo hago no se podrá acceder desde otra computadora a mi servicio de SQL Server.

En este mismo post veremos luego cómo configurar de forma adecuada el firewall para SQL Server

En la siguiente opción del instalador debemos seleccionar cuáles servicios de SQL Server queremos instalar (Database Engine Services, Analysis Services, Integration Services, etc.)

En nuestro caso como solo voy a instalar el motor de SQL Server voy a seleccionar las opciones que figuran en la siguiente figura y le indicaré también en donde deseo tener los archivos binarios (en mi caso en el disco C pero se podría elegir otro disco si lo deseamos)

En la siguiente opcion del instalador debemos indicar el nombre de la instancia, la cual puede ser default o bien name instance.

Si usamos la default luego para conectarnos simplemente debemos usar el nombre del servidor, en cambio si usamos name instance debemos usar el nombreServidor\instance.

Uno podría tener mas de una instancia (con nombres distintos claro) en el mismo servidor.

En mi caso usare la instancia por defecto

El paso siguiente es configurar las cuentas de servicio (se pueden modificar luego) y el collate del servidor (NO se puede modificar luego de la instalación)

Lo ideal sería crearnos una cuenta de servicio en nuestro AD pero no es necesario, en mi caso usare las cuentas internas de SQL Server.

Con respecto a collation, si no conocemos el collate que debemos instalar podemos dejar el que viene por defecto, pero si ya tenemos ambientes SQL implementados lo recomendable es que usemos los mismos server collate.

El inicio del servicio de agente en el instalador viene por defecto en modo Manual , recomiendo pasarlo a modo Automático , como también darle los privilegios de Perform Volumen Maintenance a las cuentas del servicio para así lograr una mejor performance a la hora de expandir nuestros archivos MDF o LDF

Nuestro siguiente paso en la instalación es configurar algunas opciones relacionadas al motor de base de datos.

Server Configuration:
Aquí configuraremos el tipo de autentificacion de SQL Server (Windows solo o mixta) como así también la clave del SA (si elegimos mixta) y que usuarios o grupos de AD son miembros del rol Sysadmin de SQL Server (El role de administrador de la instancia)

En mi caso haré la siguiente configuración:

Data Directories:
Aquí configuraremos la ubicación de nuestras bases de datos de sistema y usuario.
Idealmente poner las bases en un disco exclusivo para ello y que esté formateado en 64K, en mi ejemplo usare el disco G que he creado para guardar todas mis bases de datos, pero también se puede separar en más de una unidad o si es un Windows 10 de escritorio podría instalarlo en el disco C.

Tempdb:
En esta sección podremos hacer las configuraciones básicas de nuestra Tempdb (recordemos que una buena práctica indica tener tantos archivos de data como cores tengamos hasta un máximo de 8)
Si no sabemos cuanto pesara nuestra Tempdb podemos dejar por defecto los valores de tamaño inicial, ahora si ya conocemos el tamaño entonces lo podremos configurar desde el propio instalador (luego podremos cambiarlo si deseamos)

Maxdop:
El instalador detectará la cantidad de procesadores y nos recomendará la configuración adecuada en el uso de grado de paralelismo de SQL Server.
Podemos aplicar la recomendación del instalador (lo recomiendo) o bien ajustarlo luego de la instalación , este es un parámetro a nivel instancia que puede ser modificado en cualquier momento en caliente pero que aparece en el instalador ya que en muchas instalaciones no se hacía esta configuración y luego podía haber problemas de performance con el paralelismo y CPU

Memory (Memoria):
En esta sección el instalador los recomendará (suponiendo siempre que es una instalación dedicada a SQL Server) la cantidad máxima de memoria de la instancia.
Si estamos usando nuestra máquina Windows 10 de desarrollo en donde tenemos por ejemplo Visual Studio y nuestras aplicaciones debemos prestar mucha atención a este valor para que SQL Server no se consuma toda nuestra RAM.

De forma predeterminada SQL Server tomara toda la memoria RAM, la recomendación que nos hace el instalador es en base a las buenas practicas de MS pero siempre considerando un servidor dedicado

Este valor luego lo podremos modificar en caliente desde las opciones de la instancia de SQL Server

FileStream
Si deseamos habilitar desde el setup el uso de FileStream lo podemos hacer desde la opción que nos brinda, sino luego lo podremos hacer desde el SQL Server Configuration Manager

En mi caso como no usare Filestream lo dejaré desactivado

Ya tenemos todo nuestro instalador listo para comenzar, simplemente ahora debemos iniciar la instalación para luego tener nuestro SQL Server 2019 edición desarrollo.

Aquí podemos revisar lo que hemos configurado y si deseamos volver pasos atrás para hacer los cambios que necesitemos, o sino iniciar directamente la instalación de nuestro motor de base de datos SQL Server

Paso 4: Configurar el acceso remoto

Luego de tener instalado nuestro SQL Server 2019 y si necesitamos que se acceda al mismo desde una máquina cliente vamos a necesitar habilitar los protocolos y el puerto 1433 del Firewall.

Como primer paso activamos los protocolos que en la edición Developer vienen apagados por defecto

Desde el menú inicio buscaremos la herramienta “SQL Server Configuration Manager

Al abrir la herramienta de configuración vamos a la sección de protocolos y verificamos si TCP/IP está enable, de no estar asi lo cambiamos y luego reiniciamos el servicio de SQL Server

Ahora solo nos quedará habilitar la regla en el firewall de Windows, para ello haremos los siguientes pasos

  1. Ir al panel de control
  2. Seleccionar la opción “System & Security”
  3. Seleccionar Windows Firewall
  4. Seleccionar la opcion de “Advance Settings”

Ahora crearemos una nueva regla para el puerto 1433

Último paso: Instalar las herramientas cliente

Nuestro ultimo paso sera instalar el SQL Server Management Studio / Azure Data Studio para poder administrar y trabajar con nuestro SQL Server 2019.

Para ello vamos a hacer los siguientes pasos

  1. Bajar la ultima version desde la siguiente web

https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

2. Iniciar la instalación

Mejorar los errores Data Truncation en SQL Server

Mejorar los errores Data Truncation en SQL Server

Los errores de truncamiento de datos es algo que alguna vez como programadores de SQL Server nos hemos topado.
cuando hablamos de estos errores nos referimos a por ejemplo querer insertar en un VARCHAR(10) la palabra ‘TRIGGERDB CONSULTING SRL‘ lo cual como es lógico nos dará un error.

Ahora bien , este error no es muy detallado que digamos, por ende vamos a ver como podemos trabajar con lo que se denomina “Silent Truncation”

Veamos el siguiente ejemplo:

USE MASTER
GO
DROP DATABASE IF EXISTS TRIGGERDB2019
CREATE DATABASE TRIGGERDB2019
GO

USE TRIGGERDB2019
GO
DROP TABLE IF EXISTS DBO.DEMO_TRUNCATE;

CREATE TABLE DBO.DEMO_TRUNCATE
(ID INT IDENTITY PRIMARY KEY,
 C1 VARCHAR (10));

INSERT INTO DBO.DEMO_TRUNCATE (C1)
VALUES ('TRIGGERDB CONSULTING SRL')
Al ejecutar nuestra operación INSERT observamos el siguiente error

Msg 8152, Level 16, State 30, Line 16
Los datos de cadena o binarios se truncarían.
Se terminó la instrucción.

Msg 8152, Level 16, State 30, Line 1
String or binary data would be truncated.
The statement has been terminated.

SQL Server 2019 

En SQL Server 2019 usando solamente el modo de compatibilidad 150 podremos tener un mejor mensaje de error.

ALTER DATABASE TRIGGERDB2019 
SET COMPATIBILITY_LEVEL = 150

INSERT INTO DBO.DEMO_TRUNCATE (C1)
VALUES ('TRIGGERDB CONSULTING SRL')

Msg 2628, Level 16, State 1, Line 16
Los datos binarios o de la cadena se truncan en la columna “C1” de la tabla “TRIGGERDB2019.dbo.DEMO_TRUNCATE”. Valor truncado: “TRIGGERDB “.
Se terminó la instrucción.

Msg 2628, Level 16, State 1, Line 7
String or binary data would be truncated in table ‘TRIGGERDB2019.dbo.DEMO_TRUNCATE’, column ‘C1’. Truncated value: ‘TRIGGERDB ‘.
The statement has been terminated.

SQL Server 2016 y 2017 

Si se quiere usar esta funcionalidad en SQL Server 2016 o 2017 se requiere activar el Trace Flag 460 el cual esta disponible en el Sp2 de SQL Server 2016 y CU6 de 2017  

TF 460 en el scope

DBCC TRACEON (460)

INSERT INTO DBO.DEMO_TRUNCATE (C1)
VALUES ('TRIGGERDB CONSULTING SRL')

Msg 2628, Level 16, State 1, Line 16
Los datos binarios o de la cadena se truncan en la columna “C1” de la tabla “TRIGGERDB2019.dbo.DEMO_TRUNCATE”. Valor truncado: “TRIGGERDB “.
Se terminó la instrucción.

Msg 2628, Level 16, State 1, Line 7
String or binary data would be truncated in table ‘TRIGGERDB2019.dbo.DEMO_TRUNCATE’, column ‘C1’. Truncated value: ‘TRIGGERDB ‘.
The statement has been terminated.

SQL 2019 RTM en Docker

En el siguiente post vamos a instalar un SQL Server 2019 RTM sobre docker de Windows. 

Pre requisitos

Paso 1: Bajar la imagen

Como primer paso lo que debemos hacer es bajar la imagen de SQL Server 2019 RTM, en este caso bajaremos la imagen de Linux Ubuntu
c:> docker pull mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04

Paso 2: Crear un contenedor con SQL 2019  RTM

Cuando ya tengamos la imagen descargada podemos iniciar un contenedor , en mi caso usare el puerto externo 15000
c:> docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Passw0rd///" -p 15000:1433 --name sql2019 -d mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04

Paso 3: Conectarnos a nuestro contenedor

Para poder conectarnos a nuestro contenedor con SQL Server 2019 RTM podemos usar cualquier herramienta cliente, en mi caso lo hare con SSMS
También podemos ejecutar el siguiente código TSQL para verificar algunos datos
SELECT 
SERVERPROPERTY('ProductVersion') as Build,
SERVERPROPERTY('ProductLevel') as Level,
SERVERPROPERTY('Edition') as Edition

Eliminar el contenedor

Para eliminar nuestro contendor deberíamos ejecutar el siguiente código desde la línea de comandos
c:> docker stop sql2019
c:> docker rm sql2019

SQL 2019 CTP 2.5 en Docker

En este articulo vamos a ver como probar SQL Server 2019 CTP 2.5 sobre Docker dektop para Windows 10

Instalando Docker

Lo primero que debemos hacer es instalar docker desktop, para ello simplemente debemos bajarlo del siguiente link y luego ejecutar el instalador.

Para comprobar el funcionamiento abrimos una consola de PowerShell o CMD en modo administrador y ejecutamos el siguiente comando.

PS C:\> DOCKER VERSION 

Configurar un disco compartido (shared disk)

Si bien este paso no es un requisito si es recomendable. Lo que haremos aquí es compartir un disco externo al contenedor para así poder tener persistencia de los datos fuera del contenedor, para leer sobre discos compartidos en docker podes acceder al siguiente link .

Para habilitar el shared disk desde docker desktop es bastante simple, como primer paso abrimos el docker desktop y vamos a discos compartidos, en mi caso compartí el disco E de mi SO.

Bajando la imagen de SQL 2019 CTP 2.5

Nuestro siguiente paso es bajar la imagen de SQL Server 2019 CTP 2.5, la misma tiene como base un Linux Ubuntu.

Para esta operación desde la consola de PS o CMD como administrador ejecutaremos el siguiente comando.

PS c:\> docker pull mcr.microsoft.com/mssql/server:2019-CTP2.5-ubuntu

Creando el container

En este paso vamos a crear un contenedor con la imagen que hemos descargado anteriormente, para ello ejecutaremos desde la consola el siguiente comando.

PS c:\> docker run -d -p 15790:1433 --env ACCEPT_EULA=Y 
        --env SA_PASSWORD=123@Passw0rd 
        -v e:\Docker\SQL:/sql --name sql2019ctp 
        mcr.microsoft.com/mssql/server:2019-CTP2.5-ubuntu

El comando creara un contenedor con la imagen de SQL 2019CTP2.5 donde se mapea el puerto 15790 del SO anfitrión contra el 1433 del contenedor. No es requisito cambiar el puerto pero en mi caso ya tengo instalado un SQL Server en mi windows 10 en el puerto 1433.

Con el parametro -V montamos la ruta e:\docker\sql para que nuestro container pueda tener acceso.

Nuestro siguiente paso es iniciar el contenedor, para ellos ejecutaremos el siguiente comando desde la consola.

PS c:\> docker start sql2019ctp

Conectándonos a la instancia de SQL Server

Ahora lo que vamos a hacer es usar una herramienta cliente (en mi caso el Management Studio V18) para podernos conectar a la instancia de SQL Server 2019 CTP 2.5 que esta en el contenedor en el puerto 15790

Como podemos observar en la imagen anterior vemos que la versión es la 15 correspondiente a SQL Server 2019. También probaremos el siguiente comando TSQL para tener mas información de la instancia MSSQL.

select @@version 

Restaurar una base de datos de ejemplo

Nuestro siguiente paso es hacer un restore de la base de datos de ejemplo WideWordl

Para ello lo que vamos a hacer es bajar el archivo .bak
WideWorldImporters-Full.bak y copiarlo en nuestro disco compartido del SO, en mi caso lo copiare en el disco E:\Docker\sql\bkp

Luego desde el SSMS conectado a la instancia haremos un simple restore de ese archivo, podemos hacer que los MDF , LDF y NDF se persistan dentro del container o bien hacerlo afuera, esto ultimo nos daría la ventaja de no perder luego esos archivos al borrar el container.

Aquí para acceder a nuestro recurso compartido simplemente ponemos /SQL el cual fue mapeado con la unidad cuando creamos el container y en donde tendremos nuestro archivo .bak a restaurar.

El siguiente código TSQL hace el restore de nuestra base

USE [master]
RESTORE DATABASE [WideWorldImporters] 
FROM  DISK = N'/sql/Bkp/WideWorldImporters-Full.bak' WITH  FILE = 1,  
MOVE N'WWI_Primary' TO N'/var/opt/mssql/data/WideWorldImporters.mdf',  
MOVE N'WWI_UserData' TO N'/var/opt/mssql/data/WideWorldImporters_UserData.ndf',  
MOVE N'WWI_Log' TO N'/var/opt/mssql/data/WideWorldImporters.ldf',  
MOVE N'WWI_InMemory_Data_1' TO N'/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1',  
NOUNLOAD,  STATS = 5
GO

Ahora lo que haremos con la base restaurada en nuestro container con SQL 2019 es cambiarle el modo de compatibilidad a 150.

Conclusiones

En este post no solo hemos visto como podemos probar la versión beta de SQL Server 2019 sino que también como montarla en un container de docker