Partilhar via


Criar e executar tarefas do SQL Server Agent no Linux

Aplica-se a: SQL Server no Linux

Os jobs do SQL Server são usados para executar regularmente a mesma sequência de comandos na sua base de dados SQL Server. Este tutorial fornece um exemplo de como criar um trabalho SQL Server Agent no Linux usando tanto o Transact-SQL como o SQL Server Management Studio (SSMS).

  • Instalar o SQL Server Agent no Linux
  • Criar um novo trabalho para executar backups diários do banco de dados
  • Agendar e executar o trabalho
  • Execute as mesmas etapas no SSMS (opcional)

Para problemas conhecidos com SQL Server Agent no Linux, veja SQL Server em Linux: Problemas conhecidos.

Pré-requisitos

Os seguintes pré-requisitos são necessários para concluir este tutorial:

Os seguintes pré-requisitos são opcionais:

Ativar o SQL Server Agent

Para usar o SQL Server Agent no Linux, deve primeiro ativar o SQL Server Agent numa máquina que já tenha o SQL Server instalado.

  1. Para ativar o SQL Server Agent, execute o seguinte comando.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Reinicie o SQL Server com o seguinte comando:

    sudo systemctl restart mssql-server
    

Observação

A partir do SQL Server 2017 (14.x) CU 4, o SQL Server Agent está incluído no pacote mssql-server e está desativado inicialmente. Para o Agente configurado antes do CU 4, veja Instalar SQL Server Agent no Linux.

Criar um banco de dados de exemplo

Use as etapas a seguir para criar um banco de dados de exemplo chamado SampleDB. Esse banco de dados é usado para o trabalho de backup diário.

  1. Na sua máquina Linux, abra uma sessão de terminal bash.

  2. Usa sqlcmd para executar um comando Transact-SQL CREATE DATABASE.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Verifique se o banco de dados foi criado listando os bancos de dados no servidor.

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

Crie um trabalho com Transact-SQL

Os passos seguintes criam um trabalho SQL Server Agent no Linux com comandos Transact-SQL. O trabalho realiza um backup diário da base de dados de exemplo, SampleDB.

Dica

Você pode usar qualquer cliente T-SQL para executar esses comandos. Por exemplo, no Linux podes usar Install as ferramentas de linha de comandos sqlcmd e bcp SQL Server no Linux ou a extensão SQL Server para Visual Studio Code. A partir de um servidor Windows remoto, também pode executar consultas no SQL Server Management Studio (SSMS) ou usar a interface de utilizador para gestão de tarefas, que é descrita na secção seguinte.

  1. Use sp_add_job para criar uma tarefa chamada 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. Chame sp_add_jobstep para criar uma etapa de trabalho que crie um backup do banco de dados 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. Em seguida, crie uma agenda diária para o seu trabalho com 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. Anexe o cronograma de trabalho ao trabalho com 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 atribuir o trabalho a um servidor de destino. Neste exemplo, o destino é o servidor local.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Inicie o trabalho com sp_start_job.

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

Criar um trabalho com o SSMS

Também pode criar e gerir trabalhos remotamente usando o SQL Server Management Studio (SSMS) no Windows.

  1. Inicia o SSMS no Windows e liga-te à tua instância Linux do SQL Server. Para mais informações, consulte Use SQL Server Management Studio no Windows para gerir SQL Server em Linux.

  2. Verifique se você criou um banco de dados de exemplo chamado SampleDB.

    Captura de tela da criação de um banco de dados SampleDB.

  3. Verifica se o SQL Agent estava Install SQL Server Agent no Linux e configurado corretamente. Encontre o sinal de mais ao lado do SQL Server Agent no Object Explorer. Se SQL Server Agent não estiver ativado, tente reiniciar o serviço mssql-server no Linux.

    Captura de ecrã a mostrar como verificar se o SQL Server Agent foi instalado.

  4. Crie um novo trabalho.

    Captura de tela mostrando como criar um novo trabalho.

  5. Dê um nome à sua tarefa e crie a sua etapa da tarefa.

    Captura de tela mostrando como criar uma etapa de trabalho.

  6. Especifique qual subsistema você deseja usar e o que a etapa de trabalho deve fazer.

    Captura de ecrã da caixa de diálogo Novo Trabalho no SSMS, mostrando a página de Passos com o botão Novo destacado para criar um passo de trabalho.

    Captura de ecrã da caixa de diálogo New Job Step a mostrar um comando T-SQL BACKUP DATABASE para o SampleDB com o botão OK destacado.

  7. Crie uma nova agenda de trabalho.

    Captura de tela da caixa de diálogo Novo Trabalho com a opção Agendas realçada e a opção Novo destacada.

    Captura de tela da caixa de diálogo Novo Trabalho com a opção OK destacada.

  8. Comece o seu trabalho.

    Captura de ecrã a mostrar como iniciar o trabalho SQL Server Agent.

Próximo passo

Neste tutorial, você aprendeu como:

  • Instalar o SQL Server Agent no Linux
  • Usar Transact-SQL e procedimentos armazenados do sistema para criar trabalhos
  • Criar um trabalho que execute backups diários de banco de dados
  • Usar a interface do usuário do SSMS para criar e gerenciar trabalhos

Em seguida, explore outros recursos para criar e gerenciar trabalhos: