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

Se aplica a:SQL Server: Linux

Los trabajos de SQL Server sirven para realizar regularmente la misma secuencia de comandos en la base de datos de SQL Server. En este tutorial se muestra un ejemplo de cómo crear un trabajo del Agente SQL Server en Linux con Transact-SQL y SQL Server Management Studio (SSMS).

  • Instalar el Agente SQL Server en Linux
  • Crear un trabajo que haga una copia de seguridad de base de datos cada día
  • Programar y ejecutar el trabajo
  • Realizar los mismos pasos en SSMS (opcional)

Para ver los problemas conocidos del Agente SQL Server en Linux, consulte las notas de la versión para SQL Server 2017 en Linux.

Requisitos previos

Debe disponer de lo siguiente para poder completar este tutorial:

Lo siguiente es opcional:

Habilitar el Agente SQL Server

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

  1. Haga lo siguiente para habilitar el Agente SQL Server.

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

    sudo systemctl restart mssql-server
    

Nota:

A partir de SQL Server 2017 (14.x) CU 4, el Agente SQL Server se incluye con el paquete mssql-server y está deshabilitado de manera predeterminada. Para configurar el Agente antes de CU 4, vea Instalación del 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. Uso de sqlcmd para ejecutar un comando CREATE DATABASE Transact-SQL.

    /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'
    

Crear un trabajo con Transact-SQL

Con los siguientes pasos se crea un trabajo del Agente SQL Server en Linux con comandos Transact-SQL. El trabajo ejecuta una copia de seguridad diaria de la base de datos de muestra, 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 de SQL Server sqlcmd y bcp en Linux o Extensión de SQL Server para Visual Studio Code. Desde un servidor 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 explicaremos en la siguiente sección).

  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
    EXEC 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.

    -- Adds a step (operation) to the job
    EXEC 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'
    EXEC dbo.sp_add_schedule
       @schedule_name = N'Daily SampleDB',
       @freq_type = 4,
       @freq_interval = 1,
       @active_start_time = 233000;
    USE msdb;
    GO
    
  4. Adjunte la programación del trabajo al trabajo con sp_attach_schedule.

    -- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job
    EXEC 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.

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

    EXEC 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 más información, vea Uso de 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.

    Create a SampleDB database
  3. Compruebe que el Agente SQL era Instalación del Agente SQL Server en Linux y que esté configurado correctamente. Busque el signo más junto al Agente SQL Server en el Explorador de objetos. Si el Agente SQL Server no está habilitado, pruebe a reiniciar el servicio mssql-server en Linux.

    Screenshot showing how to verify SQL Server Agent was installed.

  4. Cree un trabajo.

    Screenshot showing how to create a new job.

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

    Screenshot showing how to create a job step.

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

    Screenshot showing job subsystem.

    Screenshot showing job step action.

  7. Cree una programación.

    Screenshot of the New Job dialog box with the Schedules option highlighted and the New option called out.

    Screenshot of the New Job dialog box with the OK option called out.

  8. Inicie el trabajo.

    Screenshot showing how to Start the SQL Server Agent job.

Paso siguiente

En este tutorial, ha aprendido a:

  • Instalar el Agente SQL Server en Linux
  • Usar 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: