Lo primero actualizamos los repositorios e instalamos un par de aplicaciones que vamos a necesitar
sudo apt update
sudo apt install -y curl gnupg
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list | sudo tee /etc/apt/sources.list.d/mssql-server-2025.list
sudo apt update sudo apt install -y mssql-server
Y ahora ejecutamos la configuración inicial con los parámetros que queremos iniciales.
sudo \
ACCEPT_EULA='Y' \
MSSQL_PID='EnterpriseDeveloper' \
MSSQL_SA_PASSWORD='YourStrongPassword' \
MSSQL_DATA_DIR='/var/opt/mssql/data' \
MSSQL_LOG_DIR='/var/opt/mssql/logs' \
MSSQL_COLLATION='SQL_Latin1_General_CP1_CI_AS' \
MSSQL_TCP_PORT='1433' \
MSSQL_AGENT_ENABLED='true' \
/opt/mssql/bin/mssql-conf -n setup
A mi me ha pasado accediendo desde sqlcmd
La manera sencilla de resolverlo es cambiar el password:
sudo systemctl stop mssql-server
sudo /opt/mssql/bin/mssql-conf set-sa-password
sudo systemctl start mssql-server
sqlcmd -S localhost -U sa -C -Q "SELECT @@VERSION;"
Si sqlcmd os da error es porque no tenéis actualizado vuestro bash, en mi caso:source .bashrc
SI tenéis zsh, pues source .zshrcY el sqlcmd ya debería de funcionar.
Si, al final no habéis puesto password o no os funciona, cambiarlo.
Ya no tenemos instalado y configurado con el ultimo comando lanzado mssql-conf -n setup
Pero el script hace mas cosas
La siguiente instrucción habilita el Transparent Huge Pages (THP) Microsoft recomienda actualmente mantener THP habilitado para SQL Server 2025 en Linux porque las cargas de SQL Server suelen manejar áreas de memoria grandes y de larga duración Buenas prácticas de rendimiento: Almacenamiento, kernel, CPU y red para SQL Server en Linux
echo always | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
Como cuando hemos configurado SQL Server le hemos dicho esto:MSSQL_AGENT_ENABLED='true'
Para que instalara SQL Server Agent ahora lo vamos a activar y reiniciamos SQL Server.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
sudo apt update
sudo timedatectl set-timezone Europe/Madrid
sudo timedatectl set-ntp true
timedatectl status
# Microsoft SQL Server kernel tuning
sudo tee /etc/sysctl.d/99-mssql.conf > /dev/null <<'EOF'
# Memory configuration
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.max_map_count = 1600000
# Disable automatic NUMA balancing
kernel.numa_balancing = 0
# Network socket buffers
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
sudo chmod 644 /etc/sysctl.d/99-mssql.conf
sudo sysctl --system
Microsoft los presenta dentro de un perfil TuneD que hereda de throughput-performance. Conviene probarlos con la carga real
Procedimientos recomendados de rendimiento: almacenamiento, kernel, CPU y red para SQL Server en Linux
En este caso he utilizado la de España / Madrid pero independientemente de donde esteis si el servidor trabaja en una región debéis poner esa hora.
Y por último activamos opciones del sistema
Y aquí os dejo el código completo
#!/bin/bash
sudo apt update
sudo apt install -y curl gnupg
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list | sudo tee /etc/apt/sources.list.d/mssql-server-2025.list
sudo apt update
sudo apt install -y mssql-server
sudo \
ACCEPT_EULA='Y' \
MSSQL_PID='EnterpriseDeveloper' \
MSSQL_SA_PASSWORD='TuPasswordGuay' \
MSSQL_DATA_DIR='/var/opt/mssql/data' \
MSSQL_LOG_DIR='/var/opt/mssql/logs' \
MSSQL_COLLATION='SQL_Latin1_General_CP1_CI_AS' \
MSSQL_TCP_PORT='1433' \
MSSQL_AGENT_ENABLED='true' \
MSSQL_ENABLE_HADR='1' \
/opt/mssql/bin/mssql-conf -n setup
# Activar THD para servidores dedicados
echo always | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
curl -sSL -O https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo ACCEPT_EULA=Y apt install -y mssql-tools18 unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
# Configuración de la zona horaria
sudo apt update
sudo timedatectl set-timezone America/Mexico_City
sudo timedatectl set-ntp true
timedatectl status
# Microsoft SQL Server kernel tuning
sudo tee /etc/sysctl.d/99-mssql.conf > /dev/null <<'EOF'
# Memory configuration
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.max_map_count = 1600000
# Disable automatic NUMA balancing
kernel.numa_balancing = 0
# Network socket buffers
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
sudo chmod 644 /etc/sysctl.d/99-mssql.conf
sudo sysctl --system
# sqlcmd -S localhost -U sa -C -Q "SELECT @@VERSION;"
# sudo systemctl stop mssql-server
# sudo /opt/mssql/bin/mssql-conf set-sa-password
# sudo systemctl start mssql-server
Las últimas lineas conectadas son: las primera para probar que funciona la instalación y las otras tres para cambiar el password de sa si no funcionase bien por lo que he comentado antes.
... y esto es todo amig@s!!! hasta la próxima ...
Saludos
Alex
:-)
/
Comentar el artículo
Suscríbete a nuestra newsletter
Copias de seguridad, Índices y rendimiento, Consultas lentas, Espacio en disco, logs, mantenimiento ...