estou usando o MySQL , como fazer backup e restore. pelo menos uma dica aí. Valeu!!!
Backup e restore
8 Respostas
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 é só sobreescrever o diretório para fazer a restauração.
[]s
Glauco Todesco
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.
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
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
são InnoBD
Não tem como??
será que nigue´m faz backup??
valeu!!!
Noticias se deu certo ???
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);
}
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.