Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server no Linux
Os jobs do SQL Server são usados para executar regularmente a mesma sequência de comandos na sua base de dados SQL Server. Este tutorial fornece um exemplo de como criar um trabalho SQL Server Agent no Linux usando tanto o Transact-SQL como 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 SQL Server Agent no Linux, veja SQL Server em Linux: Problemas conhecidos.
Pré-requisitos
Os seguintes pré-requisitos são necessários para concluir este tutorial:
Máquina Linux com os seguintes pré-requisitos:
- Quickstart: Instale SQL Server e crie uma base de dados no Red Hat Enterprise Linux
- Quickstart: Instale SQL Server e crie uma base de dados no SUSE Linux Enterprise Server
- Quickstart: Instala SQL Server e cria uma base de dados no Ubuntu com ferramentas de linha de comandos.
Observação
A partir do SQL Server 2025 (17.x), o SUSE Linux Enterprise Server (SLES) não é suportado.
Os seguintes pré-requisitos são opcionais:
- Máquina Windows com SSMS:
- Instalar SQL Server Management Studio para passos opcionais do SSMS.
Ativar o SQL Server Agent
Para usar o SQL Server Agent no Linux, deve primeiro ativar o SQL Server Agent numa máquina que já tenha o SQL Server instalado.
Para ativar o SQL Server Agent, execute o seguinte comando.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled trueReinicie o 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 está desativado inicialmente. Para o Agente configurado antes do CU 4, veja Instalar 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.
Usa 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
Os passos seguintes criam um trabalho 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 podes usar Install as ferramentas de linha de comandos sqlcmd e bcp SQL Server no Linux ou a extensão SQL Server para Visual Studio Code. A partir de um servidor Windows remoto, também pode executar consultas no SQL Server Management Studio (SSMS) ou usar a interface de utilizador para gestão de tarefas, que é descrita na secção seguinte.
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'; GOChame 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; GOEm 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; GOAnexe 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'; GOUse 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)'; GOInicie o trabalho com sp_start_job.
EXECUTE dbo.sp_start_job N' Daily SampleDB Backup'; GO
Criar um trabalho com o SSMS
Também pode criar e gerir trabalhos remotamente usando o SQL Server Management Studio (SSMS) no Windows.
Inicia o SSMS no Windows e liga-te à tua instância Linux do SQL Server. Para mais informações, consulte Use SQL Server Management Studio no Windows para gerir SQL Server em Linux.
Verifique se você criou um banco de dados de exemplo chamado
SampleDB.Verifica se o SQL Agent estava Install SQL Server Agent no Linux e configurado corretamente. Encontre o sinal de mais ao lado do SQL Server Agent no Object Explorer. Se SQL Server Agent não estiver ativado, 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 trabalhos
- 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: