Backup Banco SQL Server no windows com rotação

Blog

O backup regular dos bancos de dados é uma prática essencial para a segurança e integridade dos dados em qualquer sistema que use o SQL Server. Hoje, vamos explorar como automatizar esse processo utilizando um script bat (batch), tornando o backup não só eficiente, mas também fácil de gerenciar.

1. Preparando o Script SQL para Backup: Primeiro, precisamos de um script SQL que execute o backup do banco de dados. O script deve especificar o banco de dados a ser backupado e o local do arquivo de backup. Por exemplo:

DECLARE @date NVARCHAR(20)
DECLARE @path NVARCHAR(100)
DECLARE @sql NVARCHAR(1000)

-- Formata a data e hora atuais no formato desejado
SET @date = REPLACE(CONVERT(NVARCHAR, GETDATE(), 120), ':', '_')
SET @date = REPLACE(@date, ' ', '_')

-- Define o caminho do arquivo de backup com a data e hora
SET @path = N'Caminho\Para\Backup\NomeDoBanco_backup_' + @date + '.BAK'

-- Cria o comando de backup
SET @sql = 'BACKUP DATABASE [NomeDoBanco] TO  DISK = ''' + @path + ''' WITH NOFORMAT, NOINIT,  NAME = N''NomeDoBanco-Full Database Backup'', SKIP, NOREWIND, NOUNLOAD,  STATS = 10'

-- Executa o comando de backup
EXEC(@sql)

2. Criando o Script Bat: Com o script SQL pronto, a próxima etapa é criar um arquivo bat que irá executá-lo. O arquivo bat pode ser usado para automatizar o processo de backup e incluir comandos adicionais, como a exclusão de backups antigos.

Exemplo de um script bat para backup:

@ECHO OFF
SET backuppath=Caminho\Para\Backup
SET scriptfile=Caminho\Para\SeuScript.sql

:: Executa o script de backup do banco de dados
sqlcmd -S NomeServidor -U Usuario -P Senha -i %scriptfile%

:: Exclui arquivos de backup mais antigos que 7 dias
FORFILES /P %backuppath% /M NomeDoBanco_backup_*.BAK /D -7 /C "cmd /c del @path"

3. Agendando o Script: Para automatizar completamente o processo, você pode agendar a execução do script bat usando o Agendador de Tarefas do Windows. Isso permite que o backup seja realizado em intervalos regulares sem intervenção manual.

Conclusão: Automatizar o backup de bancos de dados SQL Server com um script bat não só economiza tempo, mas

também garante uma maior consistência e confiabilidade nos backups. Com um simples script e o agendamento adequado, você pode assegurar que seus dados estão protegidos contra perdas acidentais, mantendo a continuidade dos negócios.

Lembre-se de testar o script em um ambiente de desenvolvimento antes de implementá-lo em um sistema de produção. A automação de backups é uma parte vital da estratégia de recuperação de desastres de qualquer organização que depende de dados para operar.

Dicas Adicionais:

  • Segurança: Assegure-se de que os backups estejam armazenados em um local seguro e, se possível, criptografados.
  • Monitoramento: Monitore regularmente os logs para verificar se o backup está sendo executado conforme esperado.
  • Documentação: Mantenha uma documentação clara sobre o processo de backup e recuperação.

Tags: