há 1 dia
Neste guia prático, você vai aprender a criar uma Job no SQL Server Agent que gera um arquivo de backup (.BAK) novo a cada 3 horas, identificando automaticamente o arquivo com a data e a hora exata da geração.
1. Criando a Job no SQL Server Agent
- Abra o SQL Server Management Studio (SSMS) e conecte-se à sua instância.
- No menu lateral Pesquisador de Objetos (Object Explorer), localize a pasta SQL Server Agent.
- Certifique-se de que o serviço do SQL Server Agent está em execução (ícone verde).
- Clique com o botão direito na pasta Jobs (Trabalhos) e selecione New Job... (Novo Trabalho).
- Na aba General (Geral), defina o nome da Job no campo Name:
[MuCRM] Backup Automatico 3 Horas
2. Configurando a Etapa de Execução (Step)
- No menu lateral esquerdo da janela da Job, clique na aba Steps (Etapas).
- Clique no botão New... (Novo) na parte inferior.
- Preencha os campos básicos:
- Step name (Nome da etapa): Gerar Arquivo de Backup
- Database (Banco de dados): master (ou selecione MuOnline).
- No campo Command (Comando), cole o script SQL dinâmico abaixo, alterando apenas o nome do banco e a pasta de destino:
USE [master];
GO
-- =========================================================================
-- CONFIGURAÇÃO: Defina o nome do banco de dados e a pasta de destino
-- ATENÇÃO: A pasta informada DEVE existir no disco da VPS/Dedicado
-- =========================================================================
DECLARE @DatabaseName NVARCHAR(50) = 'MuOnline';
DECLARE @BackupFolder NVARCHAR(255) = 'C:\Backups\';
-- Monta a data/hora no formato: YYYYMMDD_HHMMSS
DECLARE @FileName NVARCHAR(MAX);
DECLARE @DateTimeString NVARCHAR(50) = REPLACE(CONVERT(VARCHAR(10), GETDATE(), 120), '-', '')
+ '_'
+ REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '');
-- Gera o caminho final do arquivo (ex: C:\Backups\MuOnline_20260817_150000.bak)
SET @FileName = @BackupFolder + @DatabaseName + '_' + @DateTimeString + '.bak';
-- Executa o comando nativo de Backup com compressão (se suportado)
DECLARE @SQL NVARCHAR(MAX);
SET @SQL = N'BACKUP DATABASE ' + QUOTENAME(@DatabaseName) + '
TO DISK = ''' + @FileName + '''
WITH NOFORMAT, NOINIT,
NAME = ''' + @DatabaseName + '-BackupCompleto'',
SKIP, NOREWIND, NOUNLOAD, STATS = 10, COMPRESSION;';
EXEC sp_executesql @SQL;
GO
- Clique em OK para salvar a etapa.
3. Agendando para Rodar de 3 em 3 Horas (Schedules)
- No menu lateral esquerdo da janela da Job, clique na aba Schedules (Agendas).
- Clique no botão New... (Novo).
- Preencha os campos conforme as instruções abaixo:
- Name (Nome): A Cada 3 Horas
- Schedule type (Tipo de agenda): Recurring (Recorrente).
- Occurs (Ocorre): Daily (Diário) -> Recurs every 1 day(s) (Repetir a cada 1 dia).
- Daily frequency (Frequência diária):
- Marque a opção: Occurs every (Ocorre a cada).
- Defina o valor para: 3 e selecione Hours (Horas).
- Starting at (Iniciando às): 00:00:00
- Ending at (Terminando às): 23:59:59
- Clique em OK na janela da agenda.
- Clique em OK na janela principal da Job para salvar e ativar.
4. Testando o Backup Manualmente
Para garantir que as permissões de pasta no Windows Server estão corretas:
- Na lista de Jobs do SQL Server Agent, clique com o botão direito sobre [MuCRM] Backup Automatico 3 Horas.
- Selecione a opção Start Job at Step... (Iniciar Trabalho na Etapa...).
- Aguarde a mensagem de Success e verifique se o arquivo .bak foi gerado na pasta configurada.
Dicas de Boas Práticas
- Permissões de Pasta: Certifique-se de que a conta de serviço do SQL Server tenha permissão de leitura/escrita na pasta escolhida (ex: C:\Backups\).
- Disco Secundário: Sempre que possível, aponte a pasta de backup para um segundo disco físico ou partição separada do banco de dados principal.
- Limpeza Periódica: Crie o hábito de excluir ou compactar backups com mais de 7 dias para evitar que o armazenamento do disco fique cheio.