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 as Notas sobre a versão para o SQL Server 2017 em Linux.

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, siga as etapas abaixo.

    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 configurar o agente antes da CU 4, acesse 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 do SQL Server sqlcmd e bcp 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
    EXEC 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.

    -- 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. Em seguida, crie um agendamento diário para seu trabalho com 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. Anexe a agenda de trabalho ao trabalho com 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 atribuir o trabalho a um servidor de destino. Neste exemplo, o destino é o servidor local.

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

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

    Criar um banco de dados SampleDB
  3. Verifique se o SQL Agent foi instalado no SQL Server Agent no Linux e 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 um trabalho.

  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 Nova Opção em destaque.

    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: