Jump to content
Fivewin Brasil

Backup / Restauração com Mysql


william

Recommended Posts

Boa noite e Feliz Ano Novo a Todos.

Estou desenvolvendo um backup para mysql e gostaria que os amigos fizessem testes com ele e se possivel dar sugestoes para melhora-lo. Ficou bem simples, basta configurar o BD, usuario e senha nas configuracoes e já deve funcionar.

Ele trabalha junto com o mysqldump.exe para gerar o backup e com o mysql.exe para restaurar o backup.

link :

http://www.4shared.com/rar/Ajxd2i99/backup.html

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Link to comment
Share on other sites

Boa noite e Feliz Ano Novo a Todos.

Estou desenvolvendo um backup para mysql e gostaria que os amigos fizessem testes com ele e se possivel dar sugestoes para melhora-lo. Ficou bem simples, basta configurar o BD, usuario e senha nas configuracoes e já deve funcionar.

Ele trabalha junto com o mysqldump.exe para gerar o backup e com o mysql.exe para restaurar o backup.

link :

http://www.4shared.com/rar/Ajxd2i99/backup.html

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Link to comment
Share on other sites

Alguem sabe se é possivel a partir de um arquivo backup.sql , restaurar somente uma tabela, sem ter quer restaurar tudo ?

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Link to comment
Share on other sites

Com ceto malabarismo, sim.

http://blog.tsheets.com/2008/tips-tricks/mysql-restoring-a-single-table-from-a-huge-mysqldump-file.html

Outro modo seria ao invés de fazer o dump do BD inteiro num arquivo só, faz um arquivo por tabela. Acho que o mysqldump tem uma opção assim.

Luis Fernando Jr. (Luisão)

--

FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

luis.fernando.majr@gmail.com

juninho_luisao@hotmail.com (msn)

Link to comment
Share on other sites

citação:Com ceto malabarismo, sim.

http://blog.tsheets.com/2008/tips-tricks/mysql-restoring-a-single-table-from-a-huge-mysqldump-file.html


id=quote>id=quote>

Luizao, desta forma fica dificil incluir num programa de backup, visto que tem muitos comandos manuais de Mysql...

citação:

Outro modo seria ao invés de fazer o dump do BD inteiro num arquivo só, faz um arquivo por tabela. Acho que o mysqldump tem uma opção assim.


id=quote>id=quote>

Desta forma fica mais impossivel ainda, pois creio que um backup deve ter apenas 1 arquivo... O meu banco de dados tem 130 tabelas... ja pensou , todo dia de backup aumentar 130 tabelas....

Creio que a solução para isso vai ser mais dificil. Terei que ler o arquivo .SQL com a classe Ttxtfile() . O arquivo .SQL não passa de um arquivo texto que contem as instrucoes e os dados a serem inseridos no BD quando se restaura o backup. Vou tentar extrair o arquivo lendo diretamente o texto.

Alguem ja fez assim ?

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Link to comment
Share on other sites

Uma forma simples:

1 - Crie seu script com o mysqldump para fazer backups por tabelas.

2 - Utilize o Cobian Backup, para executar este scipt.

3 - Configure o Cobian para compactar as tabelas

Cobian é free e muda totalmente a ideia que programa free nao funciona 100%.

- Roda em rede e FTP.

- Agenda data/dias da semana/hora de backup.

- Configura para ações antes e depois do backup.

- Completo e inclemental.

Experimente se já não o conhece.

http://www.cobiansoft.com/

logofw.png

Dimob / SPED(pis/cofins)

..:: Feliz Natal para Todos ::..

Link to comment
Share on other sites

Mas para o caso de fazer o backup de cada tabela em um arquivo separado, você poderia fazer assim:

Antes você tinha um arquivo 2012-01-05.sql, agora você teria um diretório 2012-01-05 e dentro dele teria um .sql para cada tabela sua.

Aí na rotina de restaurar backup, ao escolher o dia, redireciona para a pasta correspondente. Usa um Directory para pegar a lista de todos arquivos .sql e processa um a um. (faz uma tela para marcar as tabelas desejadas)

Usando o MSGMETER você consegue até dizer qual tabela está sendo copiada/restaurada naquele momento.

Não acho que fica inviável. Você poderia até colocar essas opções no seu programa de backup (que por sinal, não vi ainda). Por exemplo: Backup Total / Backup Seletivo. Aí o Total continua como o seu é hoje e o Seletivo permite selecionar quais tabelas vai exportar/importar.

Acho que ficaria bem legal icon_smile_big.gif

Luis Fernando Jr. (Luisão)

--

FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

luis.fernando.majr@gmail.com

juninho_luisao@hotmail.com (msn)

Editado por - Luisão on 05/01/2012 16:38:31

Link to comment
Share on other sites

citação:

Experimente se já não o conhece.

http://www.cobiansoft.com/


id=quote>id=quote>

Ok S.A. , vou dar uma pesquizada

Luizao, lendo o que vc me disse, me surgiu uma ideia:

- leio do arquivo BACKUP.SQL em modo texto e pego a lista de tabelas existentes no backup. ( o meu sistema já faz isso).

- Faço o Dump das tabelas da lista uma a uma, gravando os .SQL em um pasta temporaria.

- Apos gerar os .SQL para cada tabela, vou zipar tudo num arquivo ZIP. este será o arquivo de backup !

- apos gerado, limpo a pasta temporaria.

- depois eu consigo selecionar as tabelas que eu desejo restaurar, do jeito que eu quero ! e ainda tem a vantagem de ja sair compactado, ganhando em espaço fisico

o que vc acha ?

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Editado por - william on 05/01/2012 17:08:57

Link to comment
Share on other sites

Só não entendi essa parte.

citação:

- leio do arquivo BACKUP.SQL em modo texto e pego a lista de tabelas existentes no backup. ( o meu sistema já faz isso).

- Faço o Dump das tabelas da lista uma a uma, gravando os .SQL em um pasta temporaria.


id=quote>id=quote>

Você faria um dump inicial que seria o backup geral. Até aí beleza, aí você ia lendo via TXTFile para montar a lista de tabelas. Aí a partir dessa lista você geraria um dump para cada uma via mysqldump ou pela leitura via TXT ?

É que acho que vai perder desempenho.

Você poderia usar a função sqlArray (caso use SQLLIB) com a query Show Tables From seuDB, aí joga isso num browse permitindo selecionar as desejadas e faz dump só dessas. Acho mais prático.

Modos de fazer tem vários, cabe a você decidir o melhor para seu problema icon_smile_big.gif

Luis Fernando Jr. (Luisão)

--

FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

luis.fernando.majr@gmail.com

juninho_luisao@hotmail.com (msn)

Link to comment
Share on other sites

Luizao , seria +- assim:

0) Pego a lista de tabelas do banco com o comando

mysql -h localhost -u root -psenha -d banco -s-e "SHOW TABLES" > arq.temp

No arq.temp está a lista das tabelas para o dump.

1) Para fazer o Backup.SQL -> gero 1 arquivo .SQL para cada

tabela da lista em uma pasta temporaria. Depois Zipo todos os arquivos gerando o BACKUP.ZIP. (Dentro do backup.zip por exemplo terá 130 arquivos .SQL)

2)para restaurar o backup: (esqueça a parte de ler o txt, nao vai precisar). Verifico o conteudo do ZIP e abro 1 listbox para marcar as tabelas escolhidas. Depois executo a restauracao das tabelas.sql selecionadas com o mysql.exe.

Agora minha duvida é , será que existe um comando no mysqldump.exe que gera todas as tabelas .SQL de uma so vez?

Ou terei que dar um mysqldump para cada tabela ?

O comando é esse , mas gera apenas 1 tabela.

mysqldump -B BANCO --table TABELA > tabela.sql

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Editado por - william on 05/01/2012 17:59:22

Link to comment
Share on other sites

Acho que tem sim.

No manual deve ter algo falando, mas olha esse link que é mais rápido: http://stackoverflow.com/questions/3669121/dump-all-mysql-tables-into-separate-files-automagically

icon_smile_big.gif

Luis Fernando Jr. (Luisão)

--

FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

luis.fernando.majr@gmail.com

juninho_luisao@hotmail.com (msn)

Link to comment
Share on other sites

putz , não encontrei , ou não existe comando no mysqldump que gera todas as tabelas separadamente de uma só vez.

Sempre tem que ser colocado num loop para gerar.Algo assim:

For i=1 to Len(ListaTabelas)

mysqldump -B BANCO --table LISTATABELAS > LISTATABELAS.sql

* o mysqldump faz:

* conecta no BD

* executa comando

* desconecta

* se for um BD com 150 tabelas vai fazer isso vezes!

* perde performance, fica lento...

next

O ideal seria o mysqldump ter algo assim:

mysqldump -B BANCO --table TAB1 TAB2 > TAB1.SQL TAB2.SQL

Mas isso nao funciona !

Sendo assim, desisto de tentar colocar no backup a restauracao parcial , pelo motivo de lentidão no processo.

A restauração vai ser sempre TOTAL.

Para melhorar o sistema de backup, vou mandar ZIPAR o arquivo .SQL gerado. Assim ganho mais espaço Físico de armazenagem.

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Link to comment
Share on other sites

  • 1 year later...

Ola William, estava usando seu sistema de backup que vc postou aqui neste topico deste o ano passado visto não ter desenvolvido o meu ainda, funciona blz, backup e o restaura, mais agora preciso retornar um backup de um cliente que deu pau na maquina dele o arquivo esta aqui com conteudo tudo certinho, mais ao retornar da a seguinte mensagem.

 

Este backup não foi gerado pelo mysqlDump!

 

algum colega teria alguma ideia do que posso fazer

 

Obrigado

 

Luiz Fernando

Link to comment
Share on other sites

Estava fazendo uma comparação com o arquivo do backlup do cliente acima com os demais que tenho aqui, e o arquivo dele esta todo corrompido,engraçado que sao varios dias com o mesmo problema, com certeza alguma virus na maquina, visto que a mesma parou de funcionar e deve que ser formatada, bom o negocio é dar a noticia pro cliente agora ...

 

 

Abraços

 

Luiz Fernando

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...