Backup e restore

8 respostas
E

estou usando o MySQL , como fazer backup e restore. pelo menos uma dica aí. Valeu!!!

8 Respostas

glauco.todesco

Olá,
Acho que vc perguntou no lugar errado mas eu faço assim.

Instale a ferramenta administrativa MySql Query Browser disponível no site do MySql.
Selecione o menu Ferramentas-> MySql Administrator
Existe a opção de Backup e Restore.

ou

Faça a cópia do diretório data do MySQL  para fazer o backup, depois é  sobreescrever o diretório para fazer a restauração.

[]s

Glauco Todesco

E

valeu!
mas eu gostaria de fazer isso no programa. Como uma classe.
Deixar fácil para o usuário, apenas no menu ou quando sair do programa o backup será realizado automático . Ele escolheria o backup e restore.
Vc sabe como o operador naõ se preocupa com nada.

glauco.todesco

Olá,
Então vc perguntou no lugar certo, mas a sua pergunta é que não ficou clara.
A sua aplicação deve manipular o diretório data do MySQL.
Mas não sei se tem alguma API pronta para isso ou se vc vai ter que implementar tudo.
Boa sorte.

Glauco Todesco

itscefet03

Olá,

Se as tabelas forem MyISAM é só copiar os arquivos.
O código a seguir já serve:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.channels.FileChannel;

public class CopiaArquivos {
    

    public CopiaArquivos() {
        
        File a = new File("DIRETORIO_MYSQL\data\SEU_BANCO_DE_DADOS");
        File[] arqs = a.listFiles();
        String erros = "";
        for (int i=0;i<arqs.length;i++){
            try {
                    // Create channel on the source
                    FileChannel srcChannel = new FileInputStream("DIRETORIO_MYSQL\data\SEU_BANCO_DE_DADOS\"+arqs[i].getName()).getChannel();
                
                    // Create channel on the destination
                    FileChannel dstChannel = new FileOutputStream("C:\teste\"+arqs[i].getName()).getChannel();
                
                    // Copy file contents from source to destination
                    dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
                
                    // Close the channels
                    srcChannel.close();
                    dstChannel.close();
                } catch (IOException e) {
                    erros += "\n"+i+" - "+e.toString();
                }
        }        
    }
}

Todos os arquivos serão copiados para C:\teste
Mas agora se for InnoDB... também estou procurando como fazer.... rsrsrs

E

são InnoBD

Não tem como??
será que nigue´m faz backup??
valeu!!!

Helder_Ribeiro

Noticias se deu certo ???

E
Helder Ribeiro:
Noticias se deu certo ???

Helder Ribeiro
agradeço a atenção
Sim consigo realizar a copia.
to com dificuldade para restaurá-la.

porque quero que abra uma janela(JFileChooser) para que o usuario escolha a copia que deseja restaurar.
se tiver algum exemplo agradeço

String novonome = null;
            int numerodobackup = 0;
            
            File diretorio = new File("C:/teste1");
            File bck = new File("C:/teste1/almoxarifado.sql");
            
       
            if(!diretorio.isDirectory()) {
              new File("C:/teste1").mkdir();
             
            } else {  
            }
            
            // Cria Arquivo de Backup
            try {
                if(!bck.isFile()) {
                    
                    
                        String comando="C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\mysqldump.exe";   
                        ProcessBuilder pb=new ProcessBuilder(comando,"--user=root","--password=adm","almoxarifado","--result-file=C:\teste1\almoxarifado.sql");   
                        pb.start(); 
                        JOptionPane.showMessageDialog(this, "Cópia de segurança realizada com sucesso","Backup",JOptionPane.CLOSED_OPTION);
               
                } else {
                    while(bck.isFile()) {
                        numerodobackup ++;
                   
                        bck = new File("C:/teste1/almoxarifado"+numerodobackup+".sql");
                        novonome= String.valueOf(bck);
                         
                        }

                            String comando="C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\mysqldump.exe";   
                            ProcessBuilder pb=new ProcessBuilder(comando,"--user=root","--password=adm","almoxarifado","--result-file="+novonome);   
                            pb.start(); 
                            JOptionPane.showMessageDialog(this, "Cópia de segurança realizada com sucesso!","Backup",JOptionPane.CLOSED_OPTION);
                            dispose();
                }
                } catch (IOException ex) {
                ex.printStackTrace();
                
                JOptionPane.showMessageDialog(this, "Copia de segurança não realizada!","Backup",JOptionPane.CLOSED_OPTION);
                }
M

Para restaurar basta usar o comando mysql:

mysql -u root --password=12345 teste < a.sql

No caso, ele faz login como root, senha 12345. Ele insere os dados do arquivo a.sql no banco teste.

Criado 26 de outubro de 2008
Ultima resposta 16 de jan. de 2010
Respostas 8
Participantes 5