Ir para conteúdo

Autosave Database


luisstronda

Posts Recomendados

Boa tarde, pessoal, eu gostaria de saber se é possível ter um auto save/backup da minha database do meu servidor..


Utilizo Xampp 1.7.3



é que estou fazendo algumas modificações no servidor e gostaria que fosse automático o backup da minha database, também acaba ajudando se algum dia sofrer algum attack pelo menos não perde as accounts.



não sei se isso é possível, procurei por alguns tutoriais ou algo do tipo porém não achei.



se for possível alguém me ajudar , agradeço desde já!


Link para o comentário
Compartilhar em outros sites

Vamos nessa!


Tanto o MySQL como o MySQL Workbench veem com o executável que vamos utilizar, usei o do workbench porque, se precisar, vou fazer restore usando ele, então achei melhor para garantir compatibilidade.


Minha instalação do Workbench está em:



C:\Program Files (x86)\MySQL\MySQL Workbench 5.2 CE\

Nessa pasta procure pelo arquivo mysqldump.exe, velho conhecido de quem usa mysql há muitos anos…


Copie ele para o C:\ para facilitar o uso.




Agora podemos chamá-lo na linha de comando usando C:\mysqldump.exe isso garante que chamemos o do workbench, pois se chamarmos na linha de comando apenas mysqldump ele ativará o programa do diretório raiz da instalação do mysql que está nas variáveis de sistema… (system path)



Buenas, agora vamos entender como funciona.




Copiei os atributos padrão do workbench para criar um backup igual ao dele, ficou assim:



C:\mysqldump -h ip_do_servidor -u root --password=xxxxxx nome_base --result-file=caminho_do_arquivo_output.sql --add-locks --extended-insert --lock-tables --dump-date --disable-keys --tz-utc --comments --create-options --quote-names

Fiz o meu como root, mas nada impede de criar um usuário só para backup, com menos privilégios.




Rodando a linha de comando acima, o mysql dump fará um backup da base escolhida para o arquivo que você estipular no result-file. Tome cuidado com isso, pois se você não colocar um nome variável, os arquivos se substituirão!




Vou ensinar como fazer isso em um .bat. Não se assuste! Os arquivos .bat não são tão complexos de fazer e ajudam bastante no que vamos fazer.




Criei um arquivo de texto onde quiser e renomeie a extensão para .bat, clique com o botão direito, e em editar (ou edit).


No bloco de notas fazemos o seguinte, logo na primeira linha colocamos:



C:\mysqldump -h ip_do_servidor -u root --password=xxxxxx nome_base --result-file=caminho_do_arquivo_output.sql --add-locks --extended-insert --lock-tables --dump-date --disable-keys --tz-utc --comments --create-options --quote-names

Substitua o ip_do_servidor, o xxxxxx pela senha do usuário, nome_base pelo nome da base que deseja fazer backup.


Agora vem a jogada, no nome do result-file, vamos colocar o seguinte:



nomedabase + data + .sql

Para fazer isso temos que usar a variável de sistema DATE, para isso basta escrever %DATE%, mas precisamos trocas as barras da data por underscore, para isso usamos %DATE:/=_% , fácil assim!

Como exemplo, o meu ficou:



C:\mysqldump -h 10.20.30.40 -u root --password=xxxxxx repeatdomiau --result-file=C:\backups\repeat_%DATE:/=_%_.sql --add-locks --extended-insert --lock-tables --dump-date --disable-keys --tz-utc --comments --create-options --quote-names

Isso cria um dump (mesmo que backup) da base repeatdomiau, no servidor 10.20.30.40, usando usuário root e senha xxxxxxx para o arquivo repeat_11_15_2011.sql (a data muda com o dia).




Salve o seu .bat e está pronto!




Lembre-se, sempre que for editar o .bat clique com o direito e em editar, abrir faz o .bat rodar!


Agora só falta o agendamento no Windows, rode seu .bat antes para garantir que ele esteja funcionando antes de agendar.



No Windows o agendamento é fácil. Basta ir em Painel de Controle -> Ferramentas Administrativas -> Agendador de Tarefas.



Então clique em Criar Tarefa Básica para quem não tem muita experiência, ou Criar Tarefa para usuários avançados.


Na tarefa básica, dê um nome para sua tarefa, e clique em avançar.



Em Disparador, marque diariamente e avançar.



Troque a data do “iniciar” para amanhã e o horário para um em que a máquina esteja ligada e que não tenha muito uso no seu banco. Mantenha o “Repetir a Cada” em 1 dia. E avançar.



Em Ação, marque iniciar um programa e avançar.


Clique em procurar e selecione o seu arquivo .bat.



Então avançar e concluir.



Depois clique duas vezes na sua tarefa na lista de tarefas.


Nas propriedades, entre na aba configurações.



Marque a opção: “Permitir que a tarefa seja executada por demanda”


e a opção: “Executar a tarefa o mais cedo possível após uma inicialização agendada tiver sido perdida”.



Está pronto.


Prontinho , ve se te ajuda.


Editado por Akzs
Link para o comentário
Compartilhar em outros sites

  • 2 months later...

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...