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:
Computador Linux com os seguintes pré-requisitos:
Os seguintes pré-requisitos são opcionais:
- Computador Windows com SSMS:
- Download do SQL Server Management Studio (SSMS) para etapas opcionais do SSMS.
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.
Para habilitar o SQL Server Agent, siga as etapas abaixo.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
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.
Em seu computador Linux, abra uma sessão de terminal Bash.
Usar o sqlcmd para executar um comando
CREATE DATABASE
Transact-SQL./opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'CREATE DATABASE SampleDB'
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.
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
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
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
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
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
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.
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.
Verifique se você criou um banco de dados de exemplo chamado
SampleDB
.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.
Criar um novo trabalho.
Dê um nome ao seu trabalho e crie sua etapa de trabalho.
Especifique que subsistema você deseja usar e o que a etapa de trabalho deve fazer.
Crie uma nova agenda de trabalho.
Inicie seu trabalho.
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: