Compartilhar via


Criar e executar trabalhos do SQL Server Agent no Linux

Aplica-se a:SQL Server – Linux

Trabalhos do SQL Server são usados para executar regularmente a mesma sequência de comandos em seu banco de dados do SQL Server. Este tutorial apresenta um exemplo de como criar um trabalho do SQL Server Agent no Linux usando tanto o Transact-SQL quanto o SSMS (SQL Server Management Studio).

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

Para problemas conhecidos com o SQL Server Agent no Linux, consulte SQL Server no Linux: Problemas conhecidos.

Pré-requisitos

Os pré-requisitos a seguir são necessários para concluir esse tutorial:

Os seguintes pré-requisitos são opcionais:

Habilitar o SQL Server Agent

Para usar o SQL Server Agent no Linux, primeiro você deve habilitar o SQL Server Agent em um computador que já tenha o SQL Server instalado.

  1. Para habilitar o SQL Server Agent, execute o comando a seguir.

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

    sudo systemctl restart mssql-server
    

Observação

Do SQL Server 2017 (14.x) CU 4 em diante, o SQL Server Agent está incluído no pacote mssql-server e está desabilitado por padrão. Para a configuração do Agente antes do CU 4, consulte Instalar o SQL Server Agent no Linux.

Criar 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. Em seu computador Linux, abra uma sessão de terminal Bash.

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

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

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

Criar um trabalho com o Transact-SQL

As etapas a seguir criam um trabalho de SQL Server Agent no Linux com comandos Transact-SQL. O trabalho executa um backup diário do banco de dados de exemplo, SampleDB.

Dica

Você pode usar qualquer cliente T-SQL para executar esses comandos. Por exemplo, no Linux, você pode usar Instalar as ferramentas de linha de comando sqlcmd e bcp do SQL Server no Linux ou extensão do SQL Server para Visual Studio Code. Em um Windows Server remoto, você também pode executar consultas no SSMS (SQL Server Management Studio) ou usar a interface do usuário para gerenciamento de trabalho, que é descrita na próxima seção.

  1. Use sp_add_job para criar um trabalho chamado 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 cria 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 um agendamento diário para 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 a agenda 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

Você também pode criar e gerenciar trabalhos remotamente usando o SSMS (SQL Server Management Studio) no Windows.

  1. Inicie o SSMS no Windows e conecte-se à sua instância do SQL Server do Linux. Para obter mais informações, consulte Usar o SQL Server Management Studio no Windows para gerenciar o 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. Verifique se o SQL Agent Instalar SQL Server Agent no Linux foi configurado corretamente. Procure o sinal de adição ao lado do SQL Server Agent no Pesquisador de Objetos. Se o SQL Server Agent não estiver habilitado, tente reiniciar o serviço mssql-server no Linux.

    Captura de tela mostrando como verificar se o SQL Server Agent foi instalado.

  4. Criar um novo trabalho.

    Captura de tela que mostra como criar uma nova tarefa.

  5. Dê um nome ao seu trabalho e crie sua etapa de trabalho.

    Captura de tela que mostra como criar uma etapa de trabalho.

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

    Captura de tela mostrando o subsistema de trabalho.

    Captura de tela mostrando a ação da etapa de trabalho.

  7. Crie uma nova agenda de trabalho.

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

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

  8. Inicie seu trabalho.

    Captura de tela mostrando como iniciar o trabalho do SQL Server Agent.

Próxima etapa

Neste tutorial, você aprendeu a:

  • Instalar o SQL Server Agent no Linux
  • Usar o Transact-SQL e os procedimentos armazenados do sistema para criar trabalhos
  • Criar um trabalho que executa 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: