El servidor de base de datos Microsoft SQL Server 2017 está ahora en Release Candidate 1 y está disponible para su descarga y ahora incluye soporte para los sistemas operativos Windows y Linux. El cambio más sorprendente en Microsoft SQL Server 2017 es la adición del soporte para Linux. Cuando se anunció esto, Scott Guthrie, jefe de negocios de Cloud & Enterprise de Microsoft, dijo:
“SQL Server en Linux ofrecerá a los clientes aún más flexibilidad en su solución de datos“.
Cuando se hizo el anuncio, Microsoft dijo que la versión de Linux podría estar restringida a las características básicas de la base de datos relacional. Sin embargo, lo que ahora se ha anunciado se describe como ofrecer todas las características de SQL Server v.Next para Linux y Windows. El nombre de la versión beta de Microsoft SQL 2017 Server ha sido v.Next hasta ahora.
Microsoft dice que para habilitar SQL Server en Linux usaron una tecnología llamada SQL Platform Abstraction Layer (SQLPAL). Esto evolucionó a partir de una tecnología llamada Drawbridge que fue desarrollada por Microsoft Research. Drawbridge es una forma de virtualización para aplicaciones basadas en dos tecnologías principales: un picoproceso, que es un contenedor de aislamiento basado en procesos con una superficie mínima del API del núcleo (kernel); Y una biblioteca del OS, que es una versión de Windows muy ligera para funcionar eficientemente dentro de un picoproceso.
La versión de Linux incluye las mismas soluciones de alta disponibilidad que la versión de Windows Server, incluidos los grupos de disponibilidad Always On integrados con soluciones de clustering nativas de Linux como Pacemaker. En términos prácticos, es compatible con la integración de Active Directory. Transport Layer Security (TLS) es compatible con el cifrado de datos; Y SQL Server Integration Services funciona ahora en Linux. La versión SQL puede instalarse en Red Hat Enterprise Linux, Ubuntu Linux y SUSE Linux Enterprise Server. También se puede instalarlo en contenedores de Linux Docker. El único requisito es que el servidor Linux cuente con al menos 4 GB de RAM.
Instalando Microsoft SQL Server 2017 RC 1 en Ubutuntu 16.04
Ya que Ubuntu 16.04 es una plataforma soportada podemos instalar mssql-server usando el manejador de paquetes del sistema operativo. Aquí los comandos necesarios para poder intalar SQL Server 2017 desde la línea de comandos:
Primero debemos importar las claves públicas PGP de Microsoft:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add –
Luego agragamos los repositorios de Microsoft a nuestra lista de repositorios:
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
Ahora debemos actualizar los repositorios:
sudo apt-get update
Finalmente procedemos a la instalación de mssql-server:
sudo apt-get install -y mssql-server
Ya tenemos Microsoft SQL Server 2017 instalado en Ubuntu 16.04, para completar la instalación debemos hacer dos cosas, seleccionar el tipo de licencia que usaremos, recomiendo la opción número 1 “Evaluation (free, no production use rights, 180-day limit)” y establecer un password de administración fuerte (al menos 10 caracteres alfanuméricos, no basado en una palabra del diccionario), para ello ejecutamos este comando:
sudo /opt/mssql/bin/mssql-conf setup
Para asegurarnos que el servidor está corriendo, podemos usar el siguiente comando:
systemctl status mssql-server
Si todo ha salido bien debemos tener un mensaje como este:
$ systemctl status mssql-server
● mssql-server.service – Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2017-07-19 09:25:19 EDT; 1min 56s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 17573 (sqlservr)
Tasks: 127
Memory: 700.3M
CPU: 6.458s
CGroup: /system.slice/mssql-server.service
├─17573 /opt/mssql/bin/sqlservr
└─17598 /opt/mssql/bin/sqlservr
Finalmente, si queremos instalar la línea de comandos para manejar mssql-server, debemos usar los siguientes comandos:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add –
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev
Para poder invocar el cliente de línea de comandos para administrar mssql-server, debemos agregarlo a nuestro PATH, que es la variable de entorno dónde están todos los directorios en dónde se buscarán ejecutables. Para ello debemos ejecutar estos comandos:
echo ‘export PATH=”$PATH:/opt/mssql-tools/bin”‘ >> ~/.bash_profile
echo ‘export PATH=”$PATH:/opt/mssql-tools/bin”‘ >> ~/.bashrc
source ~/.bashrc
Para probar que todo está bien, invocaremos el comando sqlcmd y deberíamos de poder conectarnos al mssql-server:
sqlcmd -S localhost -U SA -P ‘el-password-que-elegiste’
Y como resultado debemos ver eso:
1>
Para salir del sqlcmd debemos usar el comando “quit“.
Espero que este pequeño howto les haya sido de utilidad.