Backup Automático no SQL Server 2005 Express

 

Na versão gratuita do SQL Server 2005 não é instalado o “SQL Server Agent”, responsável por toda a automatização de rotinas batch do banco de dados, tais como backup, reorganização de índices, shrink dos arquivos do banco de dados.

Entretanto estas e outras diversas atividades podem ser realizadas com a criação de arquivos “.BAT” e o agendador de tarefas do Windows.

Neste artigo iremos abordar o backup automático do banco de dados utilizando estas ferramentas.

 

Copiando os arquivos diretamente para outra mídia

 

Em algumas empresas o backup do SQL Server é realizado juntamente com os outros arquivos da empresa, simplesmente fazendo uma cópia do disco para outra mídia.

Entretanto, dependendo da forma como é realizada esta operação, os arquivos do banco de dados ficam bloqueados pelo sistema operacional.

Para resolver este problema, basta parar o serviço do banco de dados, copiar os dados e a seguir iniciar novamente o serviço.

Geralmente estes procedimentos são realizados em horários aos quais os usuários não estão usando o sistema, normalmente pela madrugada.

A idéia que trabalharemos é simplesmente criar um arquivo “.BAT” que irá parar o serviço e outro arquivo que reiniciará o serviço do banco de dados.

Consideremos então, que o início da cópia dos arquivos do disco comece às 2:00 da manhã:

·         Crie um arquivo chamado PARARSQL.BAT, com o seguinte conteúdo:

 

NET STOP “SQL Server (MSSQLSERVER)

 

O texto que está entre aspas, deve conter exatamente o nome do serviço que aparece na lista de serviços do Windows, conforme apresentado na Figura 1. (Iniciar/Executar/services.msc)

 

17-11pic01.JPG
Figura 1
. Lista de serviços do Windows. (Iniciar/Executar/services.msc)

 

·         O próximo passo será criar o arquivo que reinicia o serviço, INICIARSQL.BAT, ele conterá o seguinte conteúdo:

 

NET START “SQL Server (MSSQLSERVER)

 

Agora basta abrir o agendador de tarefas do Windows e programar a execução destes arquivos, o primeiro a 1:50 e o segundo após o horário de término da cópia dos arquivos para outra mídia.

No Windows XP vá em “Iniciar/Acessórios/Ferramentas do sistema/Tarefas Agendadas”, clique em “Adicionar tarefa agendada”. Siga o assistente e escolha o arquivo PararSQL.BAT, quando solicitar a periodicidade de execução do arquivo, escolha diariamente. A seguir informe o horário de execução.

Repita este procedimento para o arquivo IniciarSQL.BAT, porém com o horário de reinício do banco de dados.

 

Gerando um arquivo de Back’up

 

Para quem prefere fazer um backup utilizando os recursos do SQL Server o procedimento é diferente.

No backup Full é gerado um novo arquivo com a posição do banco de dados no momento da execução do procedimento, este arquivo deve ser gravado em um caminho que normalmente é copiado para outra mídia.

Precisaremos criar outros dois arquivos para este backup:

·         Para o primeiro cria-se um script SQL que executa o backup Full do banco de dados especificado, chamaremos de BACKUP.SQL:

        

BACKUP DATABASE NomedoBancodeDados TO DISK= “C:\Backup\NomedoBancodeDados.BAK

 

·         O segundo arquivo será um arquivo “.BAT” que irá “chamar” o interpretador de comando do SQL Server para executar o primeiro arquivo, chamaremos este arquivo de BACKUP.BAT:

 

OSQL –U sa –P senha –i “C:\Backup\Backup.SQL

 

Neste exemplo estamos solicitando para o interpretador de comandos se conectar com o banco de dados local, usando uma instância que está com o nome padrão, através de uma autenticação do SQL Server (usuário sa) e executar o conteúdo do arquivo Backup.SQL.

 

Caso no servidor exista mais do que uma instância, ou não seja usado o nome padrão, você precisará informar o servidor e o nome da instância:

 

OSQL –S servidor\instância –U sa –P senha –i “C:\Backup\Backup.SQL

 

No caso do SQL Server estar configurado para usar somente autenticação Windows altere a instrução para:

 

OSQL –E –i “C:\Backup\Backup.SQL

 

Para quem é o responsável pela cópia das informações, é importante verificar que o arquivo esteja sendo atualizado e periodicamente validar este arquivo restaurando o backup em algum outro servidor.

 

Como podemos ver algumas das tarefas automatizadas pelo “SQL Server Agent”, com alguma criatividade podem ser substituídas com as ferramentas do Windows no SQL Server 2005 Express.