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:
Máquina Linux com os seguintes pré-requisitos:
Os seguintes pré-requisitos são opcionais:
- Máquina Windows com SSMS:
- Baixe o SQL Server Management Studio (SSMS) para etapas opcionais do SSMS.
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.
Para habilitar o SQL Server Agent, siga a etapa abaixo.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
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.
Na sua máquina Linux, abra uma sessão de terminal bash.
Use sqlcmd para executar um comando Transact-SQL
CREATE DATABASE
./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
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.
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
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
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
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
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
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.
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.
Verifique se você criou um banco de dados de exemplo chamado
SampleDB
.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.
Crie um novo trabalho.
Dê um nome à sua tarefa e crie a sua etapa da tarefa.
Especifique qual subsistema você deseja usar e o que a etapa de trabalho deve fazer.
Crie uma nova agenda de trabalho.
Comece o seu trabalho.
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: