Compartilhar via


Criar e executar trabalhos SQL Server Agent no Linux

Aplica-se a:SQL Server no Linux

SQL Server Jobs são usados para realizar regularmente a mesma sequência de comandos em seu banco de dados SQL Server. Este tutorial fornece um exemplo de como criar um trabalho de SQL Server Agent no Linux usando Transact-SQL e SQL Server Management Studio (SSMS).

  • Instalar 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 SQL Server Agent no Linux, consulte SQL Server em 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 SQL Server Agent

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

  1. Para habilitar 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

A partir do SQL Server 2017 (14.x) CU 4, o SQL Server Agent está incluído no pacote mssql-server e fica desabilitado por padrão. Para configurar o Agente antes do CU 4, consulte Instalar 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. Use 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 é 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 Transact-SQL

As etapas a seguir criam um trabalho 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 as ferramentas de linha de comando sqlcmd e bcp do SQL Server no Linux ou a extensão do SQL Server para o Visual Studio Code. Em um Windows Server remoto, você também pode executar consultas no SSMS (SQL Server Management Studio) ou usar a interface da 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 SQL Server Management Studio (SSMS) no Windows.

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

    Screenshot mostrando como verificar se SQL Server Agent estava 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 da caixa de diálogo Novo Trabalho no SSMS, mostrando a página Etapas com o botão Novo realçado para criar uma etapa de trabalho.

    Captura de tela da caixa de diálogo Nova Etapa do Trabalho mostrando um comando T-SQL BACKUP DATABASE para SampleDB com o botão OK realçado.

  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.

    Screenshot mostrando como iniciar o SQL Server Agent job.

Próxima etapa

Neste tutorial, você aprendeu a:

  • Instalar SQL Server Agent no Linux
  • Usar Transact-SQL e 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: