KAVOD
HUNT
MUCRM Oficial

Como Configurar Backup Automático do Banco de Dados a Cada 3 Horas no SQL Server

Aprenda a criar uma Job no SQL Server Agent com script dinâmico para gerar cópias de segurança (.BAK) automáticas a cada 3 horas com data e hora no nome do arquivo.

MUCRM Oficial Serviços e Criação SQL Server Backup
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

  1. Abra o SQL Server Management Studio (SSMS) e conecte-se à sua instância.
  2. 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).
  3. Clique com o botão direito na pasta Jobs (Trabalhos) e selecione New Job... (Novo Trabalho).
  4. Na aba General (Geral), defina o nome da Job no campo Name:
  5. [MuCRM] Backup Automatico 3 Horas
2. Configurando a Etapa de Execução (Step)

  1. No menu lateral esquerdo da janela da Job, clique na aba Steps (Etapas).
  2. Clique no botão New... (Novo) na parte inferior.
  3. Preencha os campos básicos:
    • Step name (Nome da etapa): Gerar Arquivo de Backup
    • Database (Banco de dados): master (ou selecione MuOnline).
  4. 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

  1. Clique em OK para salvar a etapa.
3. Agendando para Rodar de 3 em 3 Horas (Schedules)

  1. No menu lateral esquerdo da janela da Job, clique na aba Schedules (Agendas).
  2. Clique no botão New... (Novo).
  3. 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
  4. Clique em OK na janela da agenda.
  5. 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:

  1. Na lista de Jobs do SQL Server Agent, clique com o botão direito sobre [MuCRM] Backup Automatico 3 Horas.
  2. Selecione a opção Start Job at Step... (Iniciar Trabalho na Etapa...).
  3. 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.

Comentários (11)

Bruno Carvalho
Bruno Carvalho @bruno-carvalho Nv. 2 • há 1 dia

Muito bom o script! Uma dúvida: se a pasta C:\Backups não existir ele cria sozinho ou tem que criar na mão no Windows antes de rodar a Job?

Davi Oliveira
Davi Oliveira @davi-oliveira Nv. 1 • há 1 dia

Muito obrigado por disponibilizar esse tutorial estava precisando mesmo

Mu Voke
Mu Voke @mu-voke Nv. 1 • há 1 dia

Parabéns pelo conteúdo! Muito bem explicado e direto ao ponto, agregou demais para a comunidade.

João Almeida
João Almeida @joao-almeida Nv. 1 • há 1 dia

Isso aqui salva demais! Quem já precisou dar rollback de emergência no SQL Server sem uma rotina dessa sabe o desespero que é. Conteúdo essencial, mandou muito bem!