En la tercera parte de ‘Cómo configurar SQL Server sobre Linux’, configuraremos los discos y particiones de la VM y cambiaremos las rutas para archivos de datos, log y backups por defecto. Por último, crearemos una base de datos para verificar que los archivos se hayan creado en las nuevas rutas por defecto.
Lee la primera y segunda parte de esta serie aquí:
Primera Parte – Cómo configurar SQL Server sobre Linux – Parte I
Segunda Parte – Como configurar SQL Server sobre Linux – Parte II
1. Configura los discos y particiones de Data, Log y Backups. Necesitamos crear las particiones necesarias que alojarán los archivos de bases de datos, los logs y los backups, para después crear un filesystem en cada uno de ellos y montarlos en los discos instalados.
Primero, buscamos los discos SCSI instalados en el sistema con DMESG.
dmesg | grep SCSI
Nos debe mostrar los discos que añadimos al momento de crear la máquina virtual.
Usa FDISK para configurar el primer disco, /dev/sdc.
sudo fdisk /dev/sdc
En el prompt, tipea “n”, luego “p” y enter en las 3 opciones siguientes para escoger los valores por defecto. De nuevo en el prompt, tipea “p” para listar las particiones existentes y “w” para escribir los cambios realizados a disco.
Formatea el disco con el sistema de archivos extendido ext4 y crea una carpeta que servirá para almacenar los archivos de datos de las bases de datos. A esta carpeta la llamaremos “UserData” y estará ubicada en /var/opt/mssql/data.
sudo mkfs -t ext4 /dev/sdc1
sudo mkdir /var/opt/mssql/data/UserData
Cambia el propietario del directorio creado al usuario mssql y montamos el sistema de archivos en el disco.
sudo chown mssql:mssql /var/opt/mssql/data/UserData
sudo mount /dev/sdc1 /var/opt/mssql/data/UserData
Usa BLKID para mostrar los atributos de los dispositivos de bloque del SO:
sudo -i blkid
Verás algo similar a esto. Toma nota del UUID correspondiente a tu disco, en mi caso el de /dev/sdc1.
Edita el archivo fstab con VI y agrega esta línea al final: UUID=TU_UUID /var/opt/mssql/data/UserData ext4 defaults,nofail 0 0
sudo vi /etc/fstab
Guardar los cambios y salir del editor. FSTAB debería verse así con la última línea que acabamos de añadir:
Repite los mismos pasos de toda la sección 1 para los discos “log” y “backups”. Las carpetas correspondientes puedes llamarlas “UserLog” y “Backups” y ubicarlas en la misma raíz que los archivos de datos: /var/opt/mssql/data.
2. Cambia las rutas por defecto. Utiliza los siguientes comandos para configurar las carpetas de datos, log y backups de la instancia de base de datos:
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /var/opt/mssql/data/UserData
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /var/opt/mssql/data/UserLog
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /var/opt/mssql/data/Backups
Esto significa que cuando se cree una base de datos, los archivos de datos y logs se crearán automáticamente en /var/opt/mssql/data/UserData y /var/opt/mssql/data/UserLog, respectivamente. De la misma manera, cuando generes respaldos, el motor tendrá privilegios para guardar los archivos de backup en /var/opt/mssql/data/Backups.
Reinicia el servicio para que los cambios surtan efecto.
sudo systemctl restart mssql-server
Con esto hemos culminado la configuración básica de SQL Server sobre Linux. Si deseas comprobar la última configuración puedes ejecutar esto para crear una nueva base de datos:
CREATE DATABASE MyAzureDB
Después de ello, si ejecutas SELECT name,physical_name FROM sys.master_files; podrás verificar que los archivos .mdf y .ldf se han creado automáticamente en las rutas que especificamos anteriormente.
Si tienes alguna duda, comentarios o sugerencias, me puedes enviar un correo a bitácoradeundba@gmail.com.