Configuración de SQL Server en Linux con la herramienta mssql-conf

Se aplica a:SQL Server: Linux

mssql-conf es un script de configuración que se instala con SQL Server 2017 (14.x) para Red Hat Enterprise Linux, SUSE Linux Enterprise Server y Ubuntu. Modifica el archivo mssql.conf donde se almacenan los valores de configuración. Puede usar la utilidad mssql-conf para establecer los parámetros siguientes:

Parámetro Descripción
Agent Habilite el Agente SQL Server.
Autenticación con Windows Configuración de la autenticación de Windows Server Active Directory.
Intercalación Establezca una nueva intercalación para SQL Server en Linux.
Comentarios del cliente Elija si SQL Server envía comentarios a Microsoft o no.
Perfil de Correo electrónico de base de datos Establezca el perfil de correo electrónico de base de datos predeterminado para SQL Server en Linux.
Directorio de datos predeterminado Cambie el directorio predeterminado de los nuevos archivos de datos de la base de datos de SQL Server (.mdf).
Directorio de registro predeterminado Cambie el directorio predeterminado de los nuevos archivos de registro de la base de datos de SQL Server (.ldf).
Directorio de base de datos maestra predeterminado Cambia el directorio predeterminado de la base de datos master y los archivos de registro.
Nombre de archivo de base de datos maestra predeterminado Cambia el nombre de los archivos de base de datos master.
Directorio de volcado predeterminado Cambie el directorio predeterminado de los nuevos volcados de memoria y otros archivos de solución de problemas.
Directorio de registro de errores predeterminado Cambia el directorio predeterminado de los nuevos archivos de registro de errores, seguimiento del generador de perfiles predeterminado, XE de sesión de mantenimiento del sistema y XE de sesión de Hekaton de SQL Server.
Directorio de copia de seguridad predeterminado Cambie el directorio predeterminado de los nuevos archivos de copia de seguridad.
Tipo de volcado Elija el tipo de archivo de volcado de memoria que se va a recopilar.
Edición Establece la edición de SQL Server.
Alta disponibilidad Habilite los grupos de disponibilidad.
Directorio de auditoría local Establezca un directorio para agregar los archivos de la auditoría local.
Configuración regional Establezca la configuración regional de SQL Server que se va a usar.
Límite de memoria Establezca el límite de memoria de SQL Server.
Configuración de red Configuración de red adicional para SQL Server.
Microsoft DTC (Coordinador de transacciones distribuidas) Configure y solucione problemas de MSDTC en Linux.
Puerto TCP Cambie el puerto en el que SQL Server escucha las conexiones.
TLS Configure la seguridad de nivel de transporte.
Marcas de seguimiento Establezca las marcas de seguimiento que va a usar el servicio.

mssql-conf es un script de configuración que se instala con SQL Server 2019 (15.x) para Red Hat Enterprise Linux, SUSE Linux Enterprise Server y Ubuntu. Puede usar esta utilidad para establecer los siguientes parámetros:

Parámetro Descripción
Agent Habilitar el Agente SQL Server
Autenticación con Windows Configuración de la autenticación de Windows Server Active Directory.
Intercalación Establezca una nueva intercalación para SQL Server en Linux.
Comentarios del cliente Elija si SQL Server envía comentarios a Microsoft o no.
Perfil de Correo electrónico de base de datos Establezca el perfil de correo electrónico de base de datos predeterminado para SQL Server en Linux.
Directorio de datos predeterminado Cambie el directorio predeterminado de los nuevos archivos de datos de la base de datos de SQL Server (.mdf).
Directorio de registro predeterminado Cambie el directorio predeterminado de los nuevos archivos de registro de la base de datos de SQL Server (.ldf).
Directorio de archivos de base de datos maestra predeterminado Cambia el directorio predeterminado de los archivos de base de datos master en la instalación de SQL existente.
Nombre de archivo de base de datos maestra predeterminado Cambia el nombre de los archivos de base de datos master.
Directorio de volcado predeterminado Cambie el directorio predeterminado de los nuevos volcados de memoria y otros archivos de solución de problemas.
Directorio de registro de errores predeterminado Cambia el directorio predeterminado de los nuevos archivos de registro de errores, seguimiento del generador de perfiles predeterminado, XE de sesión de mantenimiento del sistema y XE de sesión de Hekaton de SQL Server.
Directorio de copia de seguridad predeterminado Cambie el directorio predeterminado de los nuevos archivos de copia de seguridad.
Tipo de volcado Elija el tipo de archivo de volcado de memoria que se va a recopilar.
Edición Establece la edición de SQL Server.
Alta disponibilidad Habilite los grupos de disponibilidad.
Directorio de auditoría local Establezca un directorio para agregar los archivos de la auditoría local.
Configuración regional Establezca la configuración regional de SQL Server que se va a usar.
Límite de memoria Establezca el límite de memoria de SQL Server.
Microsoft DTC (Coordinador de transacciones distribuidas) Configure y solucione problemas de MSDTC en Linux.
EULA de Machine Learning Services Acepte los EULA de R y Python de los paquetes de mlservices. Se aplica a SQL Server 2019 (15.x) solamente.
Configuración de red Configuración de red adicional para SQL Server.
outboundnetworkaccess Habilite el acceso de red saliente para las extensiones de R, Python y Java de Machine Learning Services.
Puerto TCP Cambie el puerto en el que SQL Server escucha las conexiones.
TLS Configure la seguridad de nivel de transporte.
Marcas de seguimiento Establezca las marcas de seguimiento que va a usar el servicio.

mssql-conf es un script de configuración que se instala con SQL Server 2022 (16.x) para Red Hat Enterprise Linux y Ubuntu. Puede usar esta utilidad para establecer los siguientes parámetros:

Parámetro Descripción
Agent Habilitar el Agente SQL Server
Autenticación con Microsoft Entra ID Configuración de la autenticación con Microsoft Entra ID (antes llamado Azure Active Directory).
Autenticación con Windows Configuración de la autenticación de Windows Server Active Directory.
Intercalación Establezca una nueva intercalación para SQL Server en Linux.
Comentarios del cliente Elija si SQL Server envía comentarios a Microsoft o no.
Perfil de Correo electrónico de base de datos Establezca el perfil de correo electrónico de base de datos predeterminado para SQL Server en Linux.
Directorio de datos predeterminado Cambie el directorio predeterminado de los nuevos archivos de datos de la base de datos de SQL Server (.mdf).
Directorio de registro predeterminado Cambie el directorio predeterminado de los nuevos archivos de registro de la base de datos de SQL Server (.ldf).
Directorio de archivos de base de datos maestra predeterminado Cambia el directorio predeterminado de los archivos de base de datos master en la instalación de SQL existente.
Nombre de archivo de base de datos maestra predeterminado Cambia el nombre de los archivos de base de datos master.
Directorio de volcado predeterminado Cambie el directorio predeterminado de los nuevos volcados de memoria y otros archivos de solución de problemas.
Directorio de registro de errores predeterminado Cambia el directorio predeterminado de los nuevos archivos de registro de errores, seguimiento del generador de perfiles predeterminado, XE de sesión de mantenimiento del sistema y XE de sesión de Hekaton de SQL Server.
Directorio de copia de seguridad predeterminado Cambie el directorio predeterminado de los nuevos archivos de copia de seguridad.
Tipo de volcado Elija el tipo de archivo de volcado de memoria que se va a recopilar.
Edición Establece la edición de SQL Server.
Alta disponibilidad Habilite los grupos de disponibilidad.
Directorio de auditoría local Establezca un directorio para agregar los archivos de la auditoría local.
Configuración regional Establezca la configuración regional de SQL Server que se va a usar.
Límite de memoria Establezca el límite de memoria de SQL Server.
Microsoft DTC (Coordinador de transacciones distribuidas) Configure y solucione problemas de MSDTC en Linux.
EULA de Machine Learning Services Acepte los EULA de R y Python de los paquetes de mlservices. Se aplica a SQL Server 2019 (15.x) solamente.
Configuración de red Configuración de red adicional para SQL Server.
Acceso de red saliente Habilite el acceso de red saliente para las extensiones de R, Python y Java de Machine Learning Services.
Puerto TCP Cambie el puerto en el que SQL Server escucha las conexiones.
TLS Configure la seguridad de nivel de transporte.
Marcas de seguimiento Establezca las marcas de seguimiento que va a usar el servicio.

Sugerencia

Algunos de estos valores también se pueden configurar con variables de entorno. Para obtener más información, consulte Configuración de opciones de SQL Server con variables de entorno en Linux.

Consejos de uso

  • Para los grupos de disponibilidad Always On y los clústeres de discos compartidos, haga siempre los mismos cambios de configuración en cada nodo.

  • En el caso del escenario de clúster de disco compartido, no intente reiniciar el servicio mssql-server para aplicar los cambios. SQL Server se ejecuta como una aplicación. En su lugar, desconecte el recurso y vuelva a conectarlo.

  • En estos ejemplos se ejecuta mssql-conf especificando la ruta de acceso completa: /opt/mssql/bin/mssql-conf. Si opta por ir a esa ruta de acceso en su lugar, ejecute mssql-conf en el contexto del directorio actual: ./mssql-conf.

  • Si desea modificar el archivo mssql.conf dentro de un contenedor, cree un archivo mssql.conf en el host donde tiene el contenedor ejecutándose con su configuración deseada, y a continuación reimplemente su contenedor. Por ejemplo, la siguiente adición al archivo mssql.conf habilita el Agente SQL Server.

    [sqlagent]
    enabled = true
    

    Puede implementar el contenedor con los siguientes comandos:

    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
    -p 5433:1433 --name sql1 \
    -v /container/sql1:/var/opt/mssql \
    -d mcr.microsoft.com/mssql/server:2019-latest
    

    Para más información, consulte Creación de los archivos de configuración que va a usar el contenedor de SQL Server.

Habilitar el Agente SQL Server

La configuración sqlagent.enabled habilita el Agente SQL Server. De forma predeterminada, el Agente SQL Server está deshabilitado. Si sqlagent.enabled no está en el archivo de configuración mssql.conf, SQL Server asume de forma interna que el Agente SQL Server está deshabilitado.

Para cambiar esta configuración, siga estos pasos:

  1. Habilite el Agente SQL Server:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    

Establecimiento del perfil de correo electrónico de base de datos predeterminado para SQL Server en Linux

sqlagent.databasemailprofile permite establecer el perfil de correo electrónico de base de datos predeterminado de las alertas por correo electrónico.

sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

Registros de errores del Agente SQL

Las configuraciones sqlagent.errorlogfile y sqlagent.errorlogginglevel permiten establecer el nivel de registro y la ruta del archivo de registro del Agente SQL respectivamente.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogfile <path>

Los niveles de registro del Agente SQL son valores de máscara de bits con las siguientes equivalencias:

  • 1 = Errores
  • 2 = Advertencias
  • 4 = Información

Si desea capturar todos los niveles, utilice 7 como valor.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>

Configuración de la autenticación de Microsoft Entra

A partir de SQL Server 2022 (16.x), puede configurar Microsoft Entra ID para SQL Server. Para configurar Microsoft Entra ID, debe instalar la extensión de Azure para SQL Server después de la instalación de SQL Server. Para obtener información sobre cómo configurar Microsoft Entra ID, consulte Tutorial: Configuración de la autenticación de Microsoft Entra para SQL Server.

Cambiar la ruta de certificación predeterminada de Microsoft Entra ID

De forma predeterminada, el archivo de certificado de Microsoft Entra se almacena en /var/opt/mssql/aadsecrets/. Puede cambiar esta ruta de acceso si usa un almacén de certificados o una unidad cifrada. Para cambiar la ruta de acceso, puede usar el siguiente comando:

sudo /opt/mssql/bin/mssql-conf set network.aadcertificatefilepath /path/to/new/location.pfx

En el ejemplo anterior, /path/to/new/location.pfx es la ruta de acceso preferida que incluye el nombre del certificado.

El certificado descargado por el agente de Azure Arc para SQL Server para la autenticación de Microsoft Entra ahora se almacena en esta ubicación. No puede cambiarlo a /var/opt/mssql/secrets.

Nota:

La ruta de certificación predeterminada de Microsoft Entra ID se puede cambiar en cualquier momento después de instalar SQL Server, pero debe cambiarse antes de habilitar Microsoft Entra ID.

Opciones de configuración de Microsoft Entra ID

Las siguientes opciones se usan en la autenticación de Microsoft Entra en una instancia de SQL Server que se ejecuta en Linux.

Advertencia

Los parámetros de Microsoft Entra ID se configuran con la extensión Azure para SQL Server, y no se deben volver a configurar manualmente. Están aquí para fines informativos.

Opción Descripción
network.aadauthenticationendpoint Punto de conexión para la autenticación de Microsoft Entra
network.aadcertificatefilepath Ruta para certificar archivo para la autenticación en Microsoft Entra ID
network.aadclientcertblacklist Lista de bloqueados de certificado de cliente de Microsoft Entra ID
network.aadclientid GUID de cliente de Microsoft Entra
network.aadfederationmetadataendpoint Punto de conexión para metadatos de federación de Microsoft Entra
network.aadgraphapiendpoint Punto de conexión para Graph API de Azure AD
network.aadgraphendpoint Punto de conexión de Graph de Azure AD
network.aadissuerurl Dirección URL del emisor de Microsoft Entra
network.aadmsgraphendpoint Punto de conexión MS Graph de Microsoft Entra
network.aadonbehalfofauthority Microsoft Entra ID en nombre de la autoridad
network.aadprimarytenant GUID de cuenta empresarial principal de Microsoft Entra
network.aadsendx5c Envío X5C de Microsoft Entra ID
network.aadserveradminname Nombre de la cuenta de Microsoft Entra que se convertirá en sysadmin
network.aadserveradminsid SID de la cuenta de Microsoft Entra que se convertirá en sysadmin
network.aadserveradmintype Tipo de la cuenta de Microsoft Entra que se convertirá en sysadmin
network.aadserviceprincipalname Nombre de entidad de servicio de Microsoft Entra
network.aadserviceprincipalnamenoslash Nombre de entidad de seguridad de servicio de Microsoft Entra sin barra diagonal
network.aadstsurl Dirección URL STS de Microsoft Entra

Configuración de la autenticación de Windows Active Directory

La opción setup-ad-keytab se puede usar para crear un archivo keytab, pero los nombres de usuario y de entidad de seguridad de servicio (SPN) deben haberse creado para usar esta opción. La utilidad de Active Directory, adutil se puede usar para crear usuarios, SPN y archivos keytab.

Para ver opciones sobre el uso de setup-ad-keytab, ejecute el siguiente comando:

sudo /opt/mssql/bin/mssql-conf setup-ad-keytab --help

La opción validate-ad-config valida la configuración de la autenticación de Active Directory.

Cambio de la intercalación de SQL Server

La opción set-collation cambia el valor de intercalación por cualquiera de las intercalaciones admitidas. Para realizar este cambio, es necesario detener el servicio SQL Server.

  1. En primer lugar, realice una copia de seguridad de todas las bases de datos de usuario del servidor.

  2. Después, use el procedimiento almacenado sp_detach_db para desasociar las bases de datos de usuario.

  3. Ejecute la opción set-collation y siga las indicaciones:

    sudo /opt/mssql/bin/mssql-conf set-collation
    
  4. La utilidad mssql-conf intenta cambiar al valor de intercalación especificado y reiniciar el servicio. Si hay algún error, revierte la intercalación al valor anterior.

  5. Restaure las copias de seguridad de las bases de datos de usuario.

Para obtener una lista de las intercalaciones admitidas, ejecute la función sys.fn_helpcollations: SELECT Name from sys.fn_helpcollations().

Configuración de comentarios del cliente

La configuración telemetry.customerfeedback cambia si SQL Server envía comentarios a Microsoft o no. De forma predeterminada, este valor se establece en true en todas las ediciones. Para cambiar el valor, ejecute los siguientes comandos:

Importante

No puede desactivar los comentarios del cliente en las ediciones gratuitas de SQL Server, Express y Developer.

  1. Ejecute el script mssql-conf como raíz con el comando set para telemetry.customerfeedback. En el siguiente ejemplo se especifica false para desactivar los comentarios del cliente.

    sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
    
  2. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    

Para obtener más información, consulte Configuración de la recopilación de datos de uso y diagnóstico para SQL Server en Linux y el complemento de privacidad de SQL Server.

Cambio de la ubicación predeterminada del directorio de registro o los datos

Las configuraciones filelocation.defaultdatadir y filelocation.defaultlogdir cambian la ubicación en la que se crean los archivos de registro y de base de datos. De forma predeterminada, la ubicación es /var/opt/mssql/data. Para cambiar estas configuraciones, siga estos pasos:

  1. Cree el directorio de destino de los nuevos archivos de registro y datos de las bases de datos. En el ejemplo siguiente se crea un nuevo directorio /tmp/data:

    sudo mkdir /tmp/data
    
  2. Cambie el propietario y el grupo del directorio al usuario mssql:

    sudo chown mssql /tmp/data
    sudo chgrp mssql /tmp/data
    
  3. Use mssql-conf para cambiar el directorio de datos predeterminado con el comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
    
  4. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    
  5. Ahora todos los archivos de base de datos de las nuevas bases de datos creadas se almacenan en esta nueva ubicación. Si quiere cambiar la ubicación de los archivos de registro (.ldf) de las nuevas bases de datos, puede usar el siguiente comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
    
  6. Este comando también supone que hay un directorio /tmp/log y que está en el usuario y grupo mssql.

Cambio de la ubicación del directorio de archivos de base de datos master predeterminado

Los valores filelocation.masterdatafile y filelocation.masterlogfile cambian la ubicación en la que el Motor de base de datos de SQL Server busca los archivos de base de datos master. De forma predeterminada, la ubicación es /var/opt/mssql/data.

Para cambiar estas configuraciones, siga estos pasos:

  1. Cree el directorio de destino de los nuevos archivos de registro de errores. En el ejemplo siguiente se crea un nuevo directorio /tmp/masterdatabasedir:

    sudo mkdir /tmp/masterdatabasedir
    
  2. Cambie el propietario y el grupo del directorio al usuario mssql:

    sudo chown mssql /tmp/masterdatabasedir
    sudo chgrp mssql /tmp/masterdatabasedir
    
  3. Use mssql-conf para cambiar el directorio de base de datos master predeterminado de los archivos de datos y registro maestros con el comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf
    

    Nota:

    Además de mover los archivos de registro y datos maestros, también mueve la ubicación predeterminada de todas las demás bases de datos del sistema.

  4. Detenga el servicio SQL Server:

    sudo systemctl stop mssql-server
    
  5. Mueva los archivos master.mdf y mastlog.ldf:

    sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf
    
  6. Inicie el servicio SQL Server:

    sudo systemctl start mssql-server
    

    Nota:

    Si SQL Server no encuentra los archivos master.mdf y mastlog.ldf en el directorio especificado, se creará automáticamente una copia con plantilla de las bases de datos del sistema en el directorio especificado y SQL Server se iniciará correctamente. En cambio, los metadatos como las bases de datos de usuario, los inicios de sesión del servidor, los certificados del servidor, las claves de cifrado, los trabajos del Agente SQL o la contraseña de inicio de sesión de SA antigua no se actualizarán en la nueva base de datos master. Tendrá que detener SQL Server y mover los antiguos archivos master.mdf y mastlog.ldf a la nueva ubicación especificada e iniciar SQL Server para seguir usando los metadatos existentes.

Cambio del nombre de los archivos de base de datos master

Los valores filelocation.masterdatafile y filelocation.masterlogfile cambian la ubicación en la que el Motor de base de datos de SQL Server busca los archivos de base de datos master. También puede usarlos para cambiar el nombre de los archivos de registro y de base de datos master.

Para cambiar estas configuraciones, siga estos pasos:

  1. Detenga el servicio SQL Server:

    sudo systemctl stop mssql-server
    
  2. Use mssql-conf para cambiar los nombres esperados de la base de datos master de los archivos de registro y datos maestros de master con el comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data/mastlognew.ldf
    

    Importante

    Solo puede cambiar el nombre de los archivos de registro y de base de datos master después de que SQL Server se haya iniciado correctamente. Antes de la ejecución inicial, SQL Server espera que los archivos se denominen master.mdf y mastlog.ldf.

  3. Cambio del nombre de los archivos de registro y datos de la base de datos master:

    sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf
    
  4. Inicie el servicio SQL Server:

    sudo systemctl start mssql-server
    

Cambio de la ubicación predeterminada del directorio de volcado

El valor filelocation.defaultdumpdir cambia la ubicación predeterminada en la que se generan los volcados de memoria y SQL cuando se produce un bloqueo. De forma predeterminada, estos archivos se generan en /var/opt/mssql/log.

Para configurar esta nueva ubicación, use los comandos siguientes:

  1. Cree el directorio de destino de los nuevos archivos de volcado. En el ejemplo siguiente se crea un nuevo directorio /tmp/dump:

    sudo mkdir /tmp/dump
    
  2. Cambie el propietario y el grupo del directorio al usuario mssql:

    sudo chown mssql /tmp/dump
    sudo chgrp mssql /tmp/dump
    
  3. Use mssql-conf para cambiar el directorio de datos predeterminado con el comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
    
  4. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    

Cambio de la ubicación predeterminada del directorio de los archivos de registro de errores

La configuración filelocation.errorlogfile cambia la ubicación en la que se crean los archivos de registro de errores, seguimiento del generador de perfiles predeterminado, XE de sesión de mantenimiento del sistema y XE de sesión de Hekaton. De forma predeterminada, la ubicación es /var/opt/mssql/log. El directorio en el que se establece el archivo de registro de errores de SQL Server se convierte en el directorio de registro predeterminado para otros registros.

Para cambiar esta configuración:

  1. Cree el directorio de destino de los nuevos archivos de registro de errores. En el ejemplo siguiente se crea un nuevo directorio /tmp/logs:

    sudo mkdir /tmp/logs
    
  2. Cambie el propietario y el grupo del directorio al usuario mssql:

    sudo chown mssql /tmp/logs
    sudo chgrp mssql /tmp/logs
    
  3. Use mssql-conf para cambiar el nombre de archivo predeterminado del registro de errores con el comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
    
  4. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    

La configuración errorlog.numerrorlogs permitirá especificar el número de registros de errores mantenidos antes de recorrer el registro.

Cambio de la ubicación predeterminada del directorio de copia de seguridad

La configuración filelocation.defaultbackupdir cambia la ubicación predeterminada en la que se generan los archivos de copia de seguridad. De forma predeterminada, estos archivos se generan en /var/opt/mssql/data.

Para configurar esta nueva ubicación, use los comandos siguientes:

  1. Cree el directorio de destino de los nuevos archivos de copia de seguridad. En el ejemplo siguiente se crea un nuevo directorio /tmp/backup:

    sudo mkdir /tmp/backup
    
  2. Cambie el propietario y el grupo del directorio al usuario mssql:

    sudo chown mssql /tmp/backup
    sudo chgrp mssql /tmp/backup
    
  3. Use mssql-conf para cambiar el directorio predeterminado de copia de seguridad con el comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
    
  4. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    

Especificación de la configuración de volcado principal

Si se produce una excepción o un bloqueo en uno de los procesos de SQL Server, este crea un volcado de memoria. La captura de un volcado de memoria puede tardar mucho tiempo y ocupar un espacio considerable. Para guardar los recursos y evitar volcados de memoria repetidos, puede deshabilitar la captura automática de volcados de memoria mediante la opción coredump.disablecoredump.

sudo /opt/mssql/bin/mssql-conf set coredump.disablecoredump <true or false>

Los usuarios pueden seguir generando volcados de memoria manualmente cuando el volcado automático está deshabilitado (con coredump.disablecoredump establecido en true).

Hay dos opciones para controlar el tipo de los volcados de memoria que SQL Server recopila: coredump.coredumptype y coredump.captureminiandfull. Estas se relacionan con las dos fases de la captura de volcado principal.

La primera captura de fase se controla mediante la configuración coredump.coredumptype, que determina el tipo de archivo de volcado generado durante una excepción. La segunda fase se habilita con la configuración coredump.captureminiandfull. Si coredump.captureminiandfull se establece en true, se genera el archivo de volcado especificado por coredump.coredumptype y también se genera un segundo minivolcado. Si se establece coredump.captureminiandfull en false, se deshabilita el segundo intento de captura.

  1. Decida si quiere capturar los minivolcados y los volcados completos con la configuración coredump.captureminiandfull.

    sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
    

    Valor predeterminado: false

  2. Especifique el tipo de archivo de volcado de la configuración coredump.coredumptype.

    sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>
    

    Valor predeterminado: miniplus

    En la tabla siguiente, se ofrecen los posibles valores de coredump.coredumptype.

    Tipo Descripción
    mini Mini es el tipo de archivo de volcado más pequeño. Usa la información del sistema Linux para determinar los subprocesos y los módulos del proceso. El volcado solo contiene los módulos y las pilas de subprocesos del entorno del host. No contiene referencias de memoria indirectas ni elementos globales.
    miniplus MiniPlus es similar a mini, pero incluye memoria adicional. Comprende los aspectos internos de SQLPAL y el entorno de host, y agrega las siguientes regiones de memoria al volcado:

    - Varias globales
    - Toda la memoria superior a 64 TB
    - Todas las regiones con nombre que están en /proc/$pid/maps
    - Memoria indirecta de los subprocesos y las pilas
    - Información de subprocesos, incluidos bloques de entorno de subprocesos asociados (TEB) y bloques de entorno de procesos (PEB)
    - Información del módulo
    - Árbol de VAD y VMM
    filtered Filtered usa un diseño basado en la resta en el que se incluye toda la memoria del proceso a menos que se excluya específicamente. El diseño comprende los aspectos internos de SQLPAL y el entorno de host, y excluye determinadas regiones del volcado.
    full Full es un volcado de proceso completo que incluye todas las regiones que están en /proc/$pid/maps. No se controla mediante el valor coredump.captureminiandfull.

Edición

La edición de SQL Server se puede cambiar mediante la opción set-edition. Para cambiar la edición de SQL Server, primero se debe detener el servicio SQL Server. Para obtener más información sobre las ediciones disponibles de SQL Server en Linux, consulte Ediciones de SQL Server.

Alta disponibilidad

La opción hadr.hadrenabled habilita los grupos de disponibilidad en la instancia de SQL Server. El siguiente comando habilita los grupos de disponibilidad al establecer hadr.hadrenabled en 1. Debe reiniciar SQL Server para que la configuración surta efecto.

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

Para información sobre cómo se usa con los grupos de disponibilidad, consulte los dos artículos siguientes.

Establecimiento del directorio de auditoría local

La configuración telemetry.userrequestedlocalauditdirectory habilita la auditoría local y le permite establecer el directorio en el que se crean los registros de auditoría local.

  1. Cree un directorio de destino para los nuevos registros de Auditoría local. En el ejemplo siguiente se crea un nuevo directorio /tmp/audit:

    sudo mkdir /tmp/audit
    
  2. Cambie el propietario y el grupo del directorio al usuario mssql:

    sudo chown mssql /tmp/audit
    sudo chgrp mssql /tmp/audit
    
  3. Ejecute el script mssql-conf como raíz con el comando set para telemetry.userrequestedlocalauditdirectory:

    sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
    
  4. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    

Para obtener más información, consulte Configuración de la recopilación de datos de uso y diagnóstico para SQL Server en Linux.

Cambio de la configuración regional de SQL Server

La configuración language.lcid cambia la configuración regional de SQL Server por cualquier identificador de lenguaje (LCID) admitido.

  1. En el ejemplo siguiente se cambia la configuración regional a Francés (1036):

    sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
    
  2. Reinicie el servicio SQL Server para aplicar los cambios:

    sudo systemctl restart mssql-server
    

Establecimiento del límite de memoria

El valor memory.memorylimitmb controla la cantidad de memoria física (en MB) disponible para SQL Server. El valor predeterminado es el 80 % de la memoria física, para evitar las condiciones de memoria insuficiente (OOM).

Importante

El valor memory.memorylimitmb limita la cantidad de memoria física disponible para el proceso de SQL Server. La configuración memoria máxima del servidor (MB) se puede usar para ajustar la cantidad de memoria disponible para el grupo de búferes de SQL Server, pero nunca puede superar la cantidad de memoria física disponible para SQL Server. Para obtener más información sobre la opción de configuración de servidor memoria máxima del servidor (MB), vea Opciones de configuración de memoria del servidor.

  1. Ejecute el script mssql-conf como raíz con el comando set para memory.memorylimitmb. En el ejemplo siguiente se cambia la memoria disponible para SQL Server a 3,25 GB (3328 MB).

    sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
    
  2. Reinicie el servicio SQL Server para aplicar los cambios:

    sudo systemctl restart mssql-server
    

Configuración de memoria adicional

Las opciones siguientes están disponibles para la configuración de memoria.

Opción Descripción
memory.disablememorypressure Deshabilitación de la presión de memoria de SQL Server. Los valores pueden ser true o false.
memory.memory_optimized Habilitación o deshabilitación de características optimizadas para memoria de SQL Server: optimización de archivos de memoria persistente, protección de la memoria. Los valores pueden ser true o false.
memory.enablecontainersharedmemory Aplicable solo para los contenedores de SQL Server. Use esta opción para habilitar la memoria compartida dentro de contenedores de SQL Server. De manera predeterminada, se establece en false. Los valores pueden ser true o false.

Configuración de MSDTC

Los valores network.rpcport y distributedtransaction.servertcpport se usan para configurar el Coordinador de transacciones distribuidas de Microsoft (MSDTC). Para cambiar estas configuraciones, ejecute los siguientes comandos:

  1. Ejecute el script mssql-conf como raíz con el comando set para network.rpcport:

    sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
    
  2. A continuación, establezca el valor distributedtransaction.servertcpport:

    sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
    

Además de establecer estos valores, también debe configurar el enrutamiento y actualizar el firewall para el puerto 135. Para obtener más información sobre cómo hacerlo, vea Procedimiento para configurar Microsoft DTC (Coordinador de transacciones distribuidas) en Linux.

Hay algunos otros valores de mssql-conf que puede usar para supervisar y solucionar problemas de MSDTC. En la siguiente tabla se describen brevemente estas configuraciones. Para obtener más información sobre su uso, consulte los detalles en el artículo de soporte técnico de Windows Cómo habilitar el seguimiento de diagnóstico para MS DTC.

Opción Descripción
distributedtransaction.allowonlysecurerpccalls Configure solo llamadas RPC seguras para transacciones distribuidas.
distributedtransaction.fallbacktounsecurerpcifnecessary Configure solo llamadas RPC de seguridad para transacciones distribuidas.
distributedtransaction.maxlogsize Tamaño del archivo de registro de transacciones de DTC en MB. El valor predeterminado es 64 MB.
distributedtransaction.memorybuffersize Tamaño de búfer circular en el que se almacenan los seguimientos. Este tamaño está en MB y el valor predeterminado es 10 MB.
distributedtransaction.servertcpport Puerto de servidor RPC de MSDTC.
distributedtransaction.trace_cm Seguimientos en el administrador de conexiones.
distributedtransaction.trace_contact Se hace un seguimiento del grupo de contactos y los contactos.
distributedtransaction.trace_gateway Se hace un seguimiento del origen de la puerta de enlace.
distributedtransaction.trace_log Seguimiento del registro.
distributedtransaction.trace_misc Seguimientos que no se pueden clasificar en las otras categorías.
distributedtransaction.trace_proxy Seguimientos que se generan en el proxy de MSDTC.
distributedtransaction.trace_svc Se hace un seguimiento del inicio del archivo .exe y el servicio.
distributedtransaction.trace_trace Infraestructura de seguimiento.
distributedtransaction.trace_util Rutinas de la utilidad de seguimiento a las que se llama desde varias ubicaciones.
distributedtransaction.trace_xa Origen de seguimiento del administrador de transacciones XA (XATM).
distributedtransaction.tracefilepath Carpeta en la que deben almacenarse los archivos de seguimiento.
distributedtransaction.turnoffrpcsecurity Habilite o deshabilite la seguridad RPC de las transacciones distribuidas.

Aceptar los EULA de Machine Learning Services

Al agregar paquetes de R o Python de aprendizaje automático al motor de base de datos, tiene que aceptar los términos de licencia de las distribuciones de código abierto de R y Python. En la tabla siguiente se enumeran todos los comandos disponibles o las opciones relacionadas con los EULA de mlservices. Se usa el mismo parámetro de CLUF para R y Python, en función de lo que haya instalado.

# For all packages: database engine and mlservices
# Setup prompts for mlservices EULAs, which you need to accept
sudo /opt/mssql/bin/mssql-conf setup

# Add R or Python to an existing installation
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

# Alternative valid syntax
# Adds the EULA section to the INI and sets acceptulam to yes
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y

# Rescind EULA acceptance and removes the setting
sudo /opt/mssql/bin/mssql-conf unset EULA accepteulaml

También puede agregar la aceptación del CLUF directamente al archivo mssql.conf:

[EULA]
accepteula = Y
accepteulaml = Y

Habilitación del acceso de red saliente

El acceso de red saliente para las extensiones de R, Python y Java en la característica SQL Server Machine Learning Services está deshabilitado de forma predeterminada. Para habilitar las solicitudes salientes, establezca la propiedad booleana outboundnetworkaccess con mssql-conf.

Después de establecer la propiedad, reinicie el servicio SQL Server Launchpad para leer los valores actualizados del archivo INI. En un mensaje de reinicio se le recuerda si se ha modificado un valor relacionado con la extensibilidad.

# Adds the extensibility section and property.
# Sets "outboundnetworkaccess" to true.
# This setting is required if you want to access data or operations off the server.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1

# Turns off network access but preserves the setting
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 0

# Removes the setting and rescinds network access
sudo /opt/mssql/bin/mssql-conf unset extensibility.outboundnetworkaccess

También puede agregar outboundnetworkaccess directamente al archivo mssql.conf:

[extensibility]
outboundnetworkaccess = 1

Cambio del puerto TCP

La configuración network.tcpport cambia el puerto TCP en el que SQL Server escucha las conexiones. De forma predeterminada, este puerto se establece en el 1433. Para cambiar el puerto, ejecute los siguientes comandos:

  1. Ejecute el script mssql-conf como raíz con el comando set para network.tcpport:

    sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
    
  2. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    
  3. Al conectarse ahora a SQL Server, debe especificar el puerto personalizado con una coma (,) después del nombre de host o la dirección IP. Por ejemplo, para conectarse con sqlcmd, usaría el siguiente comando:

    sqlcmd -S localhost,<new_tcp_port> -U test -P test
    

Especificación de la configuración de TLS

Las opciones siguientes configuran TLS para una instancia de SQL Server que se ejecuta en Linux.

Opción Descripción
network.forceencryption Si es 1, SQL Server obliga a que se cifren todas las conexiones. De forma predeterminada, esta opción es 0.
network.tlscert La ruta de acceso absoluta al archivo de certificado que usa SQL Server para TLS. Ejemplo: /etc/ssl/certs/mssql.pem. La cuenta de mssql debe poder acceder al archivo de certificado. Microsoft recomienda restringir el acceso al archivo mediante chown mssql:mssql <file>; chmod 400 <file>.
network.tlskey Ruta de acceso absoluta al archivo de clave privada que usa SQL Server para TLS. Ejemplo: /etc/ssl/private/mssql.key. La cuenta de mssql debe poder acceder al archivo de certificado. Microsoft recomienda restringir el acceso al archivo mediante chown mssql:mssql <file>; chmod 400 <file>.
network.tlsprotocols Lista separada por comas de los protocolos TLS que admite SQL Server. SQL Server siempre intenta negociar el protocolo más seguro permitido. Si un cliente no admite ningún protocolo permitido, SQL Server rechaza el intento de conexión. Por motivos de compatibilidad, todos los protocolos admitidos se permiten de forma predeterminada (1.2, 1.1 y 1.0). Si sus clientes admiten TLS 1.2, Microsoft recomienda permitir solo TLS 1.2.
network.tlsciphers Especifica qué cifrados permite SQL Server para TLS. Esta cadena debe tener el formato que se indica en la lista de cifrado de OpenSSL. En general, no debería tener que cambiar esta opción.
De forma predeterminada, se permiten los siguientes cifrados:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
network.kerberoskeytabfile Ruta de acceso al archivo keytab de Kerberos.

Para obtener un ejemplo del uso de la configuración de TLS, consulte Cifrar conexiones a SQL Server en Linux.

Configuración de red

Ver Tutorial: Uso de la autenticación de Active Directory con SQL Server en Linux para obtener información completa sobre el uso de la autenticación de Active Directory con SQL Server en Linux.

Las siguientes opciones son configuraciones de red adicionales que se pueden configurar mediante mssql-conf.

Opción Descripción
network.disablesssd Deshabilitación de la consulta SSSD para obtener información de cuenta de Active Directory y establecer las llamadas LDAP como método predeterminado. Los valores pueden ser true o false.
network.enablekdcfromkrb5conf Habilitación de la búsqueda de información de KDC desde krb5.conf. Los valores pueden ser true o false.
network.forcesecureldap Forzamiento del uso de LDAPS para contactar con el controlador de dominio. Los valores pueden ser true o false.
network.ipaddress Dirección IP para las conexiones entrantes.
network.kerberoscredupdatefrequency Tiempo en segundos entre las comprobaciones de las credenciales de Kerberos que deben actualizarse. El valor es un entero.
network.privilegedadaccount Usuario de Active Directory con privilegios que se usará para la autenticación de Active Directory. El valor es <username>. Para más información, consulte el Tutorial: Usar la autenticación de Active Directory con SQL Server en Linux
uncmapping Asigna la ruta de acceso UNC a una ruta de acceso local. Por ejemplo, sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder.
ldaphostcanon Establezca si OpenLDAP debe dar formato canónico a los nombres de host durante el paso de enlace. Los valores pueden ser true o false.

Habilitación o deshabilitación de las marcas de seguimiento

La opción traceflag habilita o deshabilita las marcas de seguimiento del inicio del servicio SQL Server. Para habilitar o deshabilitar una marca de seguimiento, use los siguientes comandos:

  1. Habilite una marca de seguimiento con el siguiente comando. Por ejemplo, para la marca de seguimiento 1234:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
    
  2. Puede habilitar varias marcas de seguimiento si las especifica por separado:

    sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
    
  3. De forma similar, puede deshabilitar una o varias marcas de seguimiento habilitadas si las especifica y agrega el parámetro off:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
    
  4. Reinicie el servicio SQL Server para aplicar los cambios:

    sudo systemctl restart mssql-server
    

Eliminación de una configuración

Para anular cualquier configuración que haya hecho con mssql-conf set, llame a mssql-conf con la opción unset y el nombre de la configuración. De esta forma, se borra la configuración y se devuelve a su valor predeterminado.

  1. En el siguiente ejemplo se borra la opción network.tcpport.

    sudo /opt/mssql/bin/mssql-conf unset network.tcpport
    
  2. Reinicie el servicio SQL Server.

    sudo systemctl restart mssql-server
    

Visualización de la configuración actual

Para ver todas las opciones configuradas, ejecute el siguiente comando para generar el contenido del archivo mssql.conf:

sudo cat /var/opt/mssql/mssql.conf

Cualquier configuración que no se muestre en este archivo usa sus valores predeterminados. En la sección siguiente se proporciona un archivo mssql.conf de ejemplo.

Ver varias opciones

Para ver las distintas opciones que se pueden configurar mediante la utilidad mssql-conf, ejecute el comando help:

sudo /opt/mssql/bin/mssql-conf --help

Los resultados proporcionan varias opciones de configuración y una breve descripción para cada una de las opciones.

Formato de mssql.conf

El siguiente archivo /var/opt/mssql/mssql.conf proporciona un ejemplo de cada valor. Puede usar este formato para realizar cambios manualmente en el archivo mssql.conf según sea necesario. Si cambia el archivo manualmente, debe reiniciar SQL Server antes de que se apliquen los cambios. Para usar el archivo mssql.conf con Docker, debe hacer que Docker conserve sus datos. En primer lugar, agregue un archivo mssql.conf completo al directorio de host y después ejecute el contenedor. Hay un ejemplo de esto en Configuración de la recopilación de datos de diagnóstico de para SQL Server en Linux.

[EULA]
accepteula = Y

[coredump]
captureminiandfull = true
coredumptype = full

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
[EULA]
accepteula = Y
accepteulaml = Y

[coredump]
captureminiandfull = true
coredumptype = full

[distributedtransaction]
servertcpport = 51999

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
rpcport = 13500
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456

Contribuya a la documentación de SQL

¿Sabía que puede editar el contenido de SQL usted mismo? Si lo hace, no solo contribuirá a mejorar la documentación, sino que también se le reconocerá como colaborador de la página.

Para más información, vea Cómo colaborar en la documentación de SQL Server.