Compartir a través de


Creación y ejecución de trabajos de Agente SQL Server en Linux

Applies to:SQL Server en Linux

Trabajos de SQL Server se utilizan para realizar regularmente la misma secuencia de comandos en la base de datos de SQL Server. En este tutorial se proporciona un ejemplo de cómo crear un trabajo de Agente SQL Server en Linux mediante Transact-SQL y SQL Server Management Studio (SSMS).

  • Instalación de Agente SQL Server en Linux
  • Crear un trabajo para realizar copias de seguridad de la base de datos diariamente
  • Programar y ejecutar el trabajo
  • Realizar los mismos pasos en SSMS (opcional)

Para ver problemas conocidos con Agente SQL Server en Linux, consulte SQL Server en Linux: Problemas conocidos.

Requisitos previos

Debe disponer de lo siguiente para poder completar este tutorial:

Las siguientes condiciones previas son opcionales:

Habilitar Agente SQL Server

Para usar Agente SQL Server en Linux, primero debe habilitar Agente SQL Server en un equipo que ya tenga SQL Server instalado.

  1. Para habilitar Agente SQL Server, ejecute el siguiente comando.

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

    sudo systemctl restart mssql-server
    

Nota:

A partir de SQL Server 2017 (14.x) CU 4, Agente SQL Server se incluye con el paquete mssql-server y está deshabilitado de forma predeterminada. Para configurar el agente antes de CU 4, consulte Install Agente SQL Server en Linux.

Crear una base de datos de ejemplo

Use los siguientes pasos para crear una base de datos de ejemplo denominada SampleDB. Esta base de datos se usará para el trabajo de copia de seguridad diario.

  1. En el equipo Linux, abra una sesión de terminal de Bash.

  2. Utilice sqlcmd para ejecutar un comando Transact-SQL CREATE DATABASE.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Para comprobar que la base de datos se ha creado, muestre una lista de las bases de datos del servidor.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
    

Creación de un trabajo con Transact-SQL

En los pasos siguientes se crea un trabajo de Agente SQL Server en Linux con comandos Transact-SQL. El trabajo ejecuta una copia de seguridad diaria de la base de datos de ejemplo, SampleDB.

Sugerencia

Puede usar cualquier cliente de T-SQL para ejecutar estos comandos. Por ejemplo, en Linux puede usar instalar las herramientas de línea de comandos sqlcmd y bcp de SQL Server en Linux o la extensión de SQL Server para Visual Studio Code. Desde un Windows Server remoto, también puede ejecutar consultas en SQL Server Management Studio (SSMS) o usar la interfaz de usuario para la administración de trabajos, que se describe en la sección siguiente.

  1. Use sp_add_job para crear un trabajo denominado Daily SampleDB Backup.

    -- Adds a new job executed by the SQLServerAgent service
    -- called 'Daily SampleDB Backup'
    USE msdb;
    GO
    
    EXECUTE dbo.sp_add_job @job_name = N'Daily SampleDB Backup';
    GO
    
  2. Llame a sp_add_jobstep para crear un paso de trabajo que cree una copia de seguridad de la base de datos SampleDB.

    EXECUTE sp_add_jobstep
        @job_name = N'Daily SampleDB Backup',
        @step_name = N'Backup database',
        @subsystem = N'TSQL',
        @command = N'BACKUP DATABASE SampleDB TO DISK = \
                         N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \
                         NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10', @retry_attempts = 5, @retry_interval = 5;
    GO
    
  3. Luego, cree una programación diaria para el trabajo con sp_add_schedule.

    -- Creates a schedule called 'Daily'
    EXECUTE dbo.sp_add_schedule
        @schedule_name = N'Daily SampleDB',
        @freq_type = 4,
        @freq_interval = 1,
        @active_start_time = 233000;
    
    USE msdb;
    GO
    
  4. Adjunta el horario de tareas al trabajo con sp_attach_schedule.

    -- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job
    EXECUTE sp_attach_schedule
        @job_name = N'Daily SampleDB Backup',
        @schedule_name = N'Daily SampleDB';
    GO
    
  5. Use sp_add_jobserver para asignar el trabajo a un servidor de destino. En este ejemplo, el destino es el servidor local.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Inicie el trabajo con sp_start_job.

    EXECUTE dbo.sp_start_job N' Daily SampleDB Backup';
    GO
    

Crear un trabajo con SSMS

También puede crear y administrar trabajos de forma remota mediante SQL Server Management Studio (SSMS) en Windows.

  1. Inicie SSMS en Windows y conéctese a la instancia de SQL Server de Linux. Para obtener más información, consulte Use SQL Server Management Studio en Windows para administrar SQL Server en Linux.

  2. Confirme que ha creado una base de datos de muestra denominada SampleDB.

    Captura de pantalla de la creación de una base de datos SampleDB.

  3. Compruebe que el Agente SQL ha sido Instalado en Linux y se ha configurado correctamente. Busque el signo más junto a Agente SQL Server en el Explorador de objetos. Si Agente SQL Server no está habilitado, intente reiniciar el servicio mssql-server en Linux.

    Screenshot que muestra cómo comprobar que Agente SQL Server se instaló.

  4. Cree un nuevo puesto.

    Captura de pantalla en la que se muestra cómo crear un nuevo trabajo.

  5. Asigne un nombre al trabajo y cree el paso de trabajo.

    Captura de pantalla que muestra cómo crear un paso de trabajo.

  6. Especifique qué subsistema desea usar y qué debe hacer el paso de trabajo.

    Captura de pantalla del cuadro de diálogo Nuevo trabajo en SSMS, en la que se muestra la página Pasos con el botón Nuevo resaltado para crear un paso de trabajo.

    Captura de pantalla del cuadro de diálogo Nuevo paso de trabajo que muestra un comando T-SQL BACKUP DATABASE para SampleDB con el botón Aceptar resaltado.

  7. Crear un nuevo horario de trabajo.

    Captura de pantalla del cuadro de diálogo Nuevo trabajo con la opción Programaciones y el botón Nueva resaltados.

    Captura de pantalla del cuadro de diálogo Nuevo trabajo con la opción Aceptar resaltada.

  8. Inicie el trabajo.

    Screenshot que muestra cómo iniciar el Agente SQL Server job.

Paso siguiente

En este tutorial, ha aprendido a:

  • Instalación de Agente SQL Server en Linux
  • Uso de Transact-SQL y procedimientos almacenados del sistema para crear trabajos
  • Crear un trabajo que realice copias de seguridad de base de datos diarias
  • Usar la interfaz de usuario de SSMS para crear y administrar trabajos

Tras esto, explore otras funcionalidades para crear y administrar trabajos:

documentación de Agente SQL Server