SQLShack

Introducción

Con un número cada vez mayor de nuevos servidores que se ejecutan en Linux, e incluso un tercio de las máquinas virtuales Azure de Microsoft ejecutando Linux, han tomado la decisión de llevar SQL Server a Linux con el fin de aumentar su cuota de mercado y atraer a nuevos clientes.

Microsoft ha comenzado a incursionar fuera de los entornos Windows con diferentes productos, como las aplicaciones de Office 365 para varios sistemas operativos de teléfonos móviles, como iOS y Android, así como su propio sistema operativo Windows Phone. Microsoft ha declarado que quiere ofrecer un SQL Server en Ubuntu, Red Hat y SUSE que se siente, se ve y funciona igual que la versión de Windows del SQL Server, donde los usuarios no deberían ser capaces de ver las diferencias entre ellos, al menos desde la perspectiva del front-end.

Cosas a tener en cuenta

SQL Server en Linux es todavía muy nuevo, por lo que el comportamiento inconsistente y las características parcialmente soportadas pueden ser evidentes cuando se utiliza. Microsoft declaró que la versión preliminar de SQL Server en Ubuntu, Red Hat, SUSE y el motor Docker soportará las capacidades básicas como los componentes del motor de la base de datos que soportan el procesamiento transaccional y el almacenamiento de datos. Por el momento, tal y como indica Microsoft en sus notas de lanzamiento para SQL Server en Linux, incluso en la última Community Tech Preview 2.0 (CTP 2.0), todavía hay muchas características que no están soportadas, por lo que todavía hay que trabajar en ese campo. Sin embargo, es un gran paso para Microsoft, y uno que muchos DBAs han esperado.

Requisitos del sistema

Microsoft no ha declarado los requisitos completos del sistema para instalar SQL Server en Ubuntu, Red Hat, SUSE y el motor Docker, lo único que señalaron es que requiere más de 3,25GB de RAM. A continuación se enumeran los requisitos básicos mínimos de hardware del sistema para ejecutar Ubuntu, ajustados para los requisitos de espacio de RAM y HDD para ejecutar SQL Server en Ubuntu:
CPU: Procesador de 700Mhz (Intel Celeron o mejor)
RAM: 4GB mínimo (Ubuntu necesita 512MB como mínimo)
HDD: 5GB para Ubuntu y 3GB adicionales para SQL Server como mínimo

Procedimiento de instalación

SQL Server en Linux soporta actualmente un par de distribuciones de Linux, siendo éstas Red Hat, SUSE y Ubuntu, así como el motor Docker.

Para este artículo, vamos a instalar SQL Server en Ubuntu, siendo la última versión la 17.04 en el momento de escribir este artículo.

  1. En primer lugar, abre Terminal haciendo clic con el botón derecho del ratón en el escritorio y seleccionando Abrir Terminal.

    Alternativamente, puedes ir al menú de inicio en la parte superior izquierda, abrirlo y hacer clic en Terminal para abrirlo.

  2. Tras abrir el Terminal, nos encontramos con una ventana que se parece a la de la siguiente imagen.

  3. Es aquí donde se realiza la instalación. En primer lugar, necesitamos que se importen las claves GPG del repositorio público introduciendo el siguiente comando:

    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add –

  4. El usuario debe introducir la contraseña de la cuenta antes de completar el paso.

  5. Después de esto, necesitamos tener registrado el repositorio de Ubuntu de Microsoft SQL Server. En este paso, al igual que en el anterior, es necesario que el usuario introduzca la contraseña de la cuenta antes de completar el paso (pero sólo si han pasado 15 minutos desde la última acción, ya que es la característica de Ubuntu de escribir la contraseña sólo una vez en 15 minutos para facilitar el flujo de trabajo).

    curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list

  6. Ahora podemos instalar SQL Server en Ubuntu introduciendo los siguientes comandos:

    sudo apt-get update
    sudo apt-get install -y mssql-server

    Con esto, el paquete queda instalado. Para instalar completamente SQL Server en Ubuntu debemos ejecutar el setup mssql-conf y seguir las indicaciones. Además, se recomienda una contraseña fuerte para la creación de la cuenta SA (longitud mínima de 8 caracteres, incluyendo letras mayúsculas y minúsculas y dígitos de base 10 o/y símbolos no alfanuméricos). Para continuar con la configuración ejecutamos el siguiente comando:

    sudo /opt/mssql/bin/mssql-conf setup

  7. Una vez finalizada la instalación de SQL Server en Ubuntu, podemos comprobar si el servicio está iniciado y en funcionamiento introduciendo el siguiente comando:

    systemctl status mssql-server

  8. Después de un tiempo, puede salir una actualización del software y eso se puede manejar con unas pocas líneas en el Terminal. En primer lugar, es necesario actualizar las listas de repositorios de apt-get ejecutando el siguiente comando e introduciendo la contraseña de la cuenta.

    sudo apt-get update
    sudo /opt/mssql/bin/mssql-conf setup

  9. Después de actualizar las listas de repositorios, lo único que se necesita para actualizar el SQL Server es ejecutar el comando de instalación anterior que actualizará el paquete mssql-server:

    sudo apt-get install mssql-server

    Al ejecutar estos comandos se intentará descargar el último paquete, para después sustituir los binarios actualizados que se encuentran en /opt/mssql. Ninguna base de datos generada por el usuario o las bases de datos del sistema se ven afectadas con esta operación.

Instalación de Herramientas de SQL Server

Opcionalmente, los usuarios pueden instalar Herramientas de SQL Server en Ubuntu para mejorar su experiencia. Actualmente, el paquete contiene la utilidad de consulta de línea de comandos (sqlcmd) y la utilidad de exportación de importación masiva (bcp).

La instalación también se realiza desde el Terminal:

  1. En primer lugar, es necesario importar las claves GPG del repositorio público. Tras ejecutar este comando, es necesario introducir la contraseña de la cuenta.

    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add –

  2. Después es necesario registrar el repositorio de Microsoft Ubuntu:

    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

  3. Actualiza la lista de fuentes y ejecuta el comando de instalación con el paquete de desarrollo unixODBC:

    sudo apt-get update
    sudo apt-get install mssql-tools unixodbc-dev

  4. Tras ejecutar el segundo comando, se pedirá al usuario que permita la instalación

  5. Tras lo cual el usuario deberá Aceptar los términos de la licencia

  6. Para poder acceder a los comandos sqlcmd y bcp desde el shell bash, PATH necesita ser modificado en el ~/.bash_profile utilizando el comando:

    echo ‘export PATH=”$PATH:/opt/mssql-tools/bin”‘ >> ~/.bash_profile

    Para las sesiones que no son de inicio de sesión y las interactivas, es necesario modificar el PATH en consecuencia:

    echo ‘export PATH=”$PATH:/opt/mssql-tools/bin”‘ >> ~/.bashrc
    source ~/.bashrc

  7. Tras completar la instalación, se crea una base de datos de prueba para comprobar la funcionalidad del SQL Server en Ubuntu.

  8. Al finalizar el proceso, se inicia el último SQL Server Management Studio instalado en una máquina Windows. Como la máquina Ubuntu está en la red local, la dirección IP es 192.168.1.8. en este caso. Tras conectarse con las credenciales de SQL Server (ya que la autenticación de Windows no funciona en este caso), se puede ver que la base de datos que acabamos de crear con la herramienta sqlcmd en el Terminal de Linux está creada y el servidor es alcanzable.

Instalación de SQL Server Agent

Además de las herramientas de SQL Server, también se puede instalar SQL Server Agent como complemento después de que instalemos SQL Server en Ubuntu para gestionar y ejecutar trabajos programados.

  1. Actualizar la lista de fuentes y ejecutar el comando de instalación, tras lo cual el Terminal nos pedirá reiniciar el SQL Server para que el Agente pueda iniciarse.

    sudo apt-get update
    sudo apt-get install mssql-server-agent
    sudo systemctl restart mssql-server

    Después de esto, al conectarse al servidor en SSMS aparece que el Agente de SQL Server se está ejecutando.

Solución de problemas

Problema

  • No se puede conectar al SQL Server en Ubuntu desde SSMS

Soluciones

  • Verifique si el servidor se está ejecutando en la máquina Ubuntu ejecutando el comando:

    sudo systemctl status mssql-server

    Si el servidor no se está ejecutando, se puede iniciar ejecutando el comando:

    sudo systemctl start mssql-server

    Tras lo cual, ejecutando de nuevo el comando anterior debería quedar algo así:

  • Verificar que el firewall ha permitido el puerto 1433 que SQL Server está utilizando por defecto. Primero tenemos que comprobar el estado del ufw, que es el Firewall sin complicaciones de Ubuntu, ejecutando el siguiente comando e introduciendo la contraseña de la cuenta:

    sudo ufw status

    • Para permitir un puerto a través del ufw, ejecuta el siguiente comando:

      sudo ufw allow 1433

Problema

  • No se puede conectar al servidor utilizando la cuenta SA

Solución

  • Para restablecer la contraseña del administrador del sistema (SA), ejecute los siguientes comandos:

    sudo systemctl stop mssql-server
    sudo /opt/mssql/bin/mssql-conf setup

    Tenga en cuenta que esto detendrá temporalmente el servicio mssql-server de SQL Server.

  • Autor
  • Puestos recientes
Stefan Veselinovic
Ingeniero de ventas de soporte en ApexSQL
Stefan se ha metido en el mundo de la electrónica a una edad temprana, siempre rodeándose de algo para trastear. Después se metió también en el mundo de la informática. Se interesó por la gestión de bases de datos, la programación y el diseño gráfico. Se esfuerza por mejorar cada día aprendiendo y probando cosas nuevas.
Stefan trabaja actualmente en ApexSQL LLC como ingeniero de ventas de software donde se especializa en el rendimiento de las bases de datos y las copias de seguridad.

Stefan Veselinovic
Los últimos mensajes de Stefan Veselinovic (ver todos)
  • Cómo instalar SQL Server en Ubuntu – 18 de mayo de 2017

Deja una respuesta

Tu dirección de correo electrónico no será publicada.