Partilhar via


Criar e executar trabalhos do SQL Server Agent no Linux

Aplica-se a:SQL Server - Linux

Os trabalhos do SQL Server são usados para executar regularmente a mesma sequência de comandos no banco de dados do SQL Server. Este tutorial fornece um exemplo de como criar um trabalho do SQL Server Agent no Linux usando o Transact-SQL e 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 o SQL Server Agent no Linux, consulte as Notas de lançamento do SQL Server 2017 no Linux.

Pré-requisitos

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

Os seguintes pré-requisitos são opcionais:

Habilitar o SQL Server Agent

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

  1. Para habilitar o SQL Server Agent, siga a etapa abaixo.

    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) 4, o SQL Server Agent está incluído no pacote mssql-server e está desabilitado por padrão. Para configurar o Agent antes do CU 4, consulte Instalar o 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. 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 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

As etapas a seguir criam um trabalho do 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 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 SQL Server Management Studio (SSMS) ou usar a interface da interface do usuário para gerenciamento de tarefas, descrita na próxima seção.

  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

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

  1. Inicie o SSMS no Windows e conecte-se à sua instância do Linux SQL Server. Para obter mais informações, consulte Usar o SQL Server Management Studio no Windows para gerenciar o SQL Server no 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 Instalar o 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. 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 tela mostrando o subsistema de trabalho.

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

  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 tela mostrando como iniciar o trabalho do 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 tarefas
  • 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: