quarta-feira, 21 de dezembro de 2011

Backup MySQL automatizado em arquivos separados por data: Para Windows com Cobian Backup


É coisa simples, nada mais nada menos do que um "batizinho" (.bat) com um linha que chama o mysqldump.exe e passa uns parâmetros para ele.

Certa mente há formar melhores de ser fazer isso, mas a forma que vou apresentar é a que melhor se encaixou à minha necessidade.

No caso uso o Conian Backup, e nele não encontrei uma forma de fazer backups do MySQL em arquivos .sql. O jeito foi criar um script Batch do DOS e mandar o Cobian executar ele. Podeira usar o agendador de tarefas do windows, mas no meu caso quero manter as rotinas de backup centralizadas.

Vamos ao script:

@ECHO OFF
C:\caminho\do\mysql5.xxx\bin\mysqldump.exe -q -u root -B NomeDaBase >> C:\caminho\do\bkp\NomeDaBase-%date:~10,4%-%date:~7,2%-%date:~4,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.sql

Eitahá, pra que esse monte de % _ ~ e números?

Isso gera o arquivo .sql inserindo em seu nome a data e hora no seguinte formato/exemplo:

2011-10-26_17_43_34
ano-mês-dia_hora_minuto_segundo.
O nome do aquivo ficará parecido com isso: NomeDaBase-2011-10-26_17_43_34.sql

Para que você possa pensar um pouco e assim consiga personalizar o seu script, vou explicar como funciona esse tal de %date:~10,4% (neste caso é o ano) e o %time:~0,2%  (nesta caso é a hora)

O date e o time são variáveis do DOS que correspondem a data e a hora. Digitando estes comando do DOS ele mostra na saída padrão a data e a hora, respectivamente.



Usando os parâmetros, por exemplo :~10,4 logo após o date vão informar para o DOS usar os 4 caracteres da variável a partir do 10º, ou seja a partir da barra ( / ) que vem logo antes do ano.

E os parâmetros :~0,2 logo após o time vão informar para o DOS usar os dois caracteres da variável a partir do começo dela.

Agora dos parâmetros passados para mysqldump.exe; é o seguinte:

-q (de queijo) é para que o mysqldump não use buffer, enviando o resultado direto para a saída padrão ou para o arquivos direcionado.

-u é para definir o usuário e o -B para definir o nome da base.

Simples né?

Para quem ficou curioso sobre o Cobian backup esse é o site dele: http://www.educ.umu.se/~cobian/cobianbackup.htm

E para fazer ele chamar um programa é a seguinte dela:




Clique em Executar e em seguida navegue em busca do programa que você quer executar.



2 comentários:

  1. seu fizer um backup pelo cobian da pasta mysql sem usar o dump mesmo sem parar o servico utilizando cobian,consigo reaproveitar esse backup?

    ResponderExcluir
    Respostas
    1. Bom dia Cadu. Nas versões mais recentes do MySQL (pelo menos na usada em meu antigo emprego) fazer o backup diretamente da pasta dele não foi muito boa ideia pois para restaurar o backup foi muito mais trabalhoso do que mandar o MySQL importar o arquivo .sql do dump.

      Por isso eu particularmente não recomento o backup direto da pasta do MySQL.

      Abraço e bom trabalho/estudos.

      PS: Por favor me desculpe a demora em responder.

      Excluir

Grato por comentar