Marcelo Carazato

Artigos Técnicos de ajuda para o dia-a-dia do profissional de TI

Automatizando Backups no SQL Express

Antes de mais nada, chequem todas as informações abaixo:

  • Nome da Instancia criada na Instalação, recomento a Instalação padrão e não /SqlExpress, assim fica simples chamar seus scripts, etc;
  • Instalar Management Studio, facilita as coisas;
  • Criar as pastas Necessárias para backups e logs, nesse exemplo preferi deixar em uma unidade chamada D:\;

Passo 1: Acesse seu servidor SQL Express e crie as pastas onde irá armazenar seu arquivos de log e backup. Ex: D:\BackupBancos, dentro dela criem mais duas pastas: Logs e Backs.

Passo 2:  Abra o Management Studio, em seguida clique em New Query.

Passo 3: Download da procedure no site de Jasper Smith no link http://www.sqldbatips.com/showcode.asp?ID=26., clique em view code. Copie e cole para a janela que acabou de abrir do Management Studio, clique em execute!, Feito isso a procedure foi criada com sucesso no banco Master do seu Sql Express.

Passo 4 (Necessário apenas para SQL 2005 Express): Abrir a ferramenta SQL Server Surface Area Configuration em Start > AllPrograms>Microsoft SQL Server 2005>Configuration Tools, Selecione o link Surface Area Configuration for Features, Selecione a opção OLE Automation e clique sobre Enable OLE Automation.

Passo 5: Será necessário a criação de um arquivo de resposta para utilizarmos o utilitário sqlcmd.exe, ele será o responsável por chamar a procedure criada. Criar o script abaixo e colacar na pasta D:\BackupBancos  com o nome databasemaint.sql.

exec expressmaint

@database = ‘ALL_USER’,
@optype = ‘DB’,
@backupfldr = ‘D:\BackupBancos\Backs’,
@reportfldr = ‘D:\BackupBancos\Logs’,
@verify = 1,
@dbretainunit = ‘weeks’,
@dbretainval = 1,
@rptretainunit = ‘weeks’,
@rptretainval = 1,
@report = 1

O que esse arquivo de resposta fará:

  • Backup Full de todas as Bases de Usuários, ou seja apenas bancos criados adicionalmente no SQL, os de sistemas não serão afetados;
  • Colocara arquivos de Logs e Backup em cada pasta separadamente;
  • Manterá apenas 1 semana os arquivos de Logs e Backup, sempre apagando o mais antigo;
  • Checar a integridade dos arquivos de backup após a execução.
Todos os passos anteriores seguidos, vamos então a execução do Script:
No prompt, execute a seguinte string:
sqlcmd -U SeuUser -P suasenha -S NomedoServidor/Instancia -i D:\BackupBancos\databasemaint.sql

Onde, -U = Usuário com acesso aos bancos, geralmente o “sa”, -P “senhadousuário SA”, -S aqui podem ocorrer problemas de acordo com a instalação realizada, por isso prestem atenção ao indicar a instancia do SQL, -i local onde esta armazenado seu arquivo de respostas.

Após a conclusão do processo verifique os arquivos de log e testem o restore para ter certeza que tudo correu bem.

Para automatizar a execução do comando é um processo bem simples. Basta criar uma Task no windows com os parâmetros. segue print que deve facilitar a criação desta.

Não se esqueçam de setar todas as configurações da task, como rodar com o usuário logado ou não, com alto privilégio e também gravar ela com usuário com permissão de admin preferencialmente.