Usando MySQL Dump

9 respostas
Y

Bom dia, pessoal!

Tenho a seguinte situação: uma aplicação roda em estações Windows fazendo uso do ODBC para se conectar a um servidor local (ou seja, no mesmo prédio) com banco de dados MySQL.

Surgiu a necessidade de um acesso externo aos dados contidos nesse banco de dados. A solução mais plausível seria arquitetar o acesso via web a esses dados usando um servidor (IIS ou Tomcat) de modo que o acesso fosse sempre com os dados atualizados e “uptime”.

Entretanto, o mais provável é que, para o acesso externo, não haja disponibilidade de internet, logo, a idéia anterior é desconsiderada.

A idéia, então, foi que o banco de dados, junto com a aplicação, fosse instalado no notebook que será usado externamente.

Não é a melhor maneira, mas é a única a se considerar. (vale citar que nesse PC externo não serão incluídos dados novos, o objetivo é simplesmente a consulta)

Agora, surge o principal: como atualizar os dados de forma simples e prática para o usuário: usar o MySQL Dump (primeiro é executado para exportar os dados, e em seguida executado novamente para a execução na máquina cliente [o PC de acesso externo]).

Dúvida: como eu uso o MySQL Dump? Tem uma maneira prática de eu fazer isso? A aplicação é em Java, logo, eu pensei em fazer uma pequena app (sem GUI) que simplesmente transfere todos os dados para o banco de dados do PC externo.

Alguém tem dica(s) de qual a melhor maneira de executar essa transposição dos dados de um PC para outro?

E, se não for a melhor forma, de que outro jeito é possível?

Desde já agradeço.

9 Respostas

S

ola brother,
seguinte, creio q vc teria umas três opções,
1º -baixar o banco a “noite” e copia-lo pela manha para o notebook, se o banco for pequeno, será mais rápido que o dump

2º -o mysql tem um esquema de “bin log”, onde todas as instruções update,delete,insert são gravadas em arquivo, sendo assim, vc poderia pegar estes arquivos e importar todo dia no notebook.

3º -Dar um drop todo dia na base do book e executar um load.

Espero ter ajudado.

Sandro Lemanski da Silva

Y

Ae cara… então… tipo, fazer a cópia seria bem simples para nós, programadores…o problema é que a empresa não tem um setor responsável pelo escopo de informatização, logo, não tem como alguém fazer a cópia todos os dias, tem de ser um processo simples para o usuário comum, tipo: apertar um botão e os dados estarão lá, hehe.

Mesmo assim, obrigado pela atenção.

S

isso, vc poderia colocar um arquivo bat ou um pequeno programa que conecte em um \servidor\compartilhamento, copie automaticamente o banco e re-starte novamente.
tudo num click…

espero ter ajudado

Sandro Lemanski da Silva

Y

Sim, mas isso foi a “solução” que expus no primeiro post deste tópico.

A questão é: “COMO” fazer isso? O que pensei foi fazer algumas chamadas ao executável mysqldump que faz parte da instalação padrão do MySQL para fazer esse DROP no destino, um dumping no source, e então uma transferência/load no destino.

Mas… não sei quais os comandos mais corretos para fazer toda essa manipulação programaticamente com os dois bancos de dados.

S

humm, euimagino assim:
servidor 1 - do banco de dados
servidor 2 - notebook
as 01:00 da manha o banco do servidor 1 para, copiando o banco para o diretorio “c:\backup”,
e subindo o banco novamente.
as 08:00 quando o usuario X conectar o book na rede, baixaria obanco do notebook e copiaria o arquivo do
servidor1 para a pasta do notebook, usando o xcopy, rsync ou algo assim.
entende o que penso…
espero ter ajudado

Sandro Lemanski da Silva

S

humm, euimagino assim:
servidor 1 - do banco de dados
servidor 2 - notebook
as 01:00 da manha o banco do servidor 1 para, copiando o banco para o diretorio “c:\backup”,
e subindo o banco novamente.
as 08:00 quando o usuario X conectar o book na rede, baixaria obanco do notebook e copiaria o arquivo do
servidor1 para a pasta do notebook, usando o xcopy, rsync ou algo assim.
entende o que penso…
espero ter ajudado

Sandro Lemanski da Silva

Y

Sim, cara, só que é MySQL… não basta apenas copiar uma pasta de um lugar para outro… a transferência tem de ser feita usando os executáveis do próprio banco, ou executando instruções, loops, etc.

Se fosse simples como copiar seria muito bom, hehe.

S

opa…
creio que não… trabalho com mysql faz 6 anos, tanto em windows e linux.
o mysql funciona assim:
copie a pasta/arquivos do “\data”, la estao os .frm.
copie a pasta do innodb, ex \innodb\db001"
copie o my.ini (win32) ou my.cnf(linux/solaris) para outra pasta, os binários nao precisa copiar, visto que
ja deve estar instalado no notebook um banco mysql com a mesma versao do servidor.

espero ter ajudado.

Sandro Lemanski da Silva

A

O Sandro tem razão… é possível, numa boa, copiar só a pasta data e o banco vai permanecer funcionando…

Agora, se você quiser, ainda, utilizar o mysql dump…

Segue aí a referência da MYSQL –http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

Funciona muito bem… e é muito flexível…

Criado 14 de maio de 2008
Ultima resposta 16 de mai. de 2008
Respostas 9
Participantes 3