Como criar backup de banco de dados de forma automatizada
Nessa artigo vou demonstrar como criar backup de banco de dados de forma automatizada para banco de dados utilizando o PostgresSQL, o SQL Server e o MySQL.
Esse assunto que muitas vezes deixado para depois e só notamos que é essencial quando algo de ruim e irreparável acontece em nossos computadores e servidores. Este assunto tão importe é a rotina de fazer backups.
Já perdi as contas de quantos clientes atendi com problemas no computador ou servidor, seja ela num Sistema Operacional que não inicia ou de repente por um problema pior como, por exemplo, do HD ter queimado ou até algo mais sério, como vírus e malware. Nestas situações nem sempre conseguimos recuperar os dados e é aí que vemos que o backup poderia ter minimizado o prejuízo. Ele nos ajuda a nos prevenirmos contra estes tipos de dano.
PostgresSQL
O Backup Agendado é feito configurando uma Tarefa Agendada do Windows que executa um arquivo '.bat' com as instruções de dump do SGBD.
Primeiro deve-se criar um arquivo de extensão .bat no diretório onde os arquivos de backup serão armazenados com o seguinte conteúdo abaixo marcado com fundo cinza:
@echo off
set x=%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%
echo %x%
set date=%x%
echo %date%
set BACKUP_FILE=artnfe_%date%.backup
echo backup file name is %LOCAL_ONDE_SERÁ_GRAVADO_O_BACKUP%
SET PGPASSWORD=SENHA_DO_BANCO_DE_DADOS
echo on
bin\pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f %LOCAL_ONDE_SERÁ_GRAVADO_O_BACKUP% NOME_DO_SCHEMA
pause
Em seguida você deve copiar o diretório BIN do Postgres para o diretório de backup, de modo que o script tenha acesso aos arquivos do pg_dump.exe e suas DLLs.
Deve-se alterar o script para usar o schema e os dados de acesso ao banco específico do backup.
Em seguida configure uma tarefa agendada no Windows, acesse o Agendador de Tarefas pelo menu iniciar e clique em Criar Tarefa.
Altere as opções de segurança como a seguir:
Configure a cadência dos backups de acordo com sua necessidade:
Indique o arquivo .bat para e execução da tarefa.
Conclua a configuração e com o botão direito clique em Executar para testar a execução.
Feito isso basta confirmar se o backup foi realizado no diretório que você colocou no arquivo.bat e todo o processo está concluído com sucesso.
SQL Server
Primeiramente verifique se o SQL Server Agent está ativo, caso não esteja em execução execute-o, na pasta JOBS, abaixo do SQL Server Agent, clique com o botão direito do mouse e selecione a opção NEW JOB, como mostra a Figura 1:
Figura 1: OBJECT EXPLORER, mostrando a criação de um NEW JOB.
Logo após clicar em NEW JOB, aparecerá uma janela para você configurar o processo, como mostra a Figura 2:
Figura 2: Janela de criação de uma NEW JOB.
Na figura acima, entre apenas com o nome do NEW JOB, neste caso coloquei o nome de Backup Full.
Na janela NEW JOB, na guia General, em Name, escreva o nome que achar conveniente para seu trabalho, nesse caso irei nomea-lo de Backup Full. Clique na guia STEPS, Figura 3, em seguida clique em NEW, Figura 4:
Figura 3: Janela do NEW JOB na guia STEP.
Figura 4: Janela NEW JOB STEP
Nesta parte do processo de criação de agendamento de backup full, vamos dar o nome de Backup Full em NAME, no campo COMAND, entraremos com o código T-SQL do backup full, veja o código abaixo:
Listagem 1: Código para criação do backup full.
BACKUP DATABASE PEDIDO TO DISK='C:\BACKUP\PEDIDO-FULL.BAK' WITH INIT
A opção INIT sobrescreve o arquivo anterior, caso não seja utilizado, o arquivo de desativo sofrerá Append, ou seja, será adiciona ao backup anterior.
Após esse processo, clique em OK, em seguida clique na guia SCHEDULES, clique em NEW, como mostra a Figura 5:
Figura 5: Janela do NEW JOB SCHEDULE.
Na opção NAME, coloque Backup Full, em FREQUENCY, na opção OCCOURS, mude para DAILY, Em DAILY FREQUENCY, na opção OCCURS ONCE AT, escolha 01:00:00.
Na pasta SQL Server Agent, Jobs, teste o agendamento Backup Full, clicando com o botão direito do mouse sobre o objeto e selecionando START JOB AT STEP, como mostra a Figura 6:
Figura 6: Testando o job criado.
MySQL
Quando o banco em uso é o MySQL, o backup agendado é feito diretamente no assistente de configuração do MySQL Administrator. Basta acessar com a senha de root, cadastrar uma conexão que será usada sempre que o backup for feito, em seguida cria-se um perfil de backup configurando a frequência na aba Schedule.
Para bancos Postgres cria-se um script em arquivo .bat e em seguida configura-se uma tarefa agendada no Windows que invoca esse script.
Script exemplo:
C:
chdir C:\backup_Artnew
SET PGUSER=postgres
SET PGPASSWORD=nxsinter
echo "Aguarde, realizando o backup do Banco de Dados"
for /f "tokens=1,2,3 delims=/ " %%a in ('DATE /T') do set Date=%%a-%%b-%%c
C:\Arquiv~1\PostgreSQL\9.3\bin\pg_dump.exe -i -b -f "C:/backup_Artnew/artnfe_%Date%.backup" -h localhost -p 5432 -U postgres artnfe
pause
Como o script cria um arquivo novo para cada execução, o usuário que executa a tarefa deve ser administrador do sistema. Cada arquivo é arquivado nomeado pela data da execução.
Com isso finalizo este artigo, espero que tenham gostado, curta e compartilhe nossos conteúdos.