Fazer Backup do Banco de dados com Hibernate
26/09/2011
0
Alguém sabe algum link ou exemplo de como
Fazer Backup do Banco de dados com Hibernate.
Fazer Backup do Banco de dados com Hibernate.
Vicente Maciel
Curtir tópico
+ 0
Responder
Posts
27/09/2011
Dyego Carmo
Backup de banco de dados deve ser feito com as ferramentas oferecidas pelos proprios bancos , se voce usar o hibernate vai ter problemas , fora que vai ter que fazer tudo na mão... step by step... acredite , se vc precisa de um backup confiavel use as ferramentas que o banco de dados oferece.
Responder
30/09/2011
Luciano Martins
Uso o MySQL e a classe abaixo tem várias formas, use a q se adeque a vc...
package br.com.luxu.util; import java.io.File; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import org.joda.time.DateTime; public class Backup { public static void main(String[] args) { /* * try { String comando = * C:\\Arquivos de programas\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe * ; ProcessBuilder pb = new ProcessBuilder(comando, --user=root, * --password=admin, studio, --result-file=C:\\Backup.sql); * pb.start(); } catch (Exception exc) { exc.printStackTrace(); } */ // exportarBD(studio, Backup1); //restauraBD(D:\\studio,studio); //restauraBackup(); //fazBackup(); restaurar_backup(); } public static void restaurar_backup() { //SimpleDateFormat out = new SimpleDateFormat(yyyy-MM-dd); //Calendar cal = Calendar.getInstance(); //String data = out.format(cal.getTime()); // File file = new File(pasta + \\backup_ + data + .sql); File file = new File(D:\\studio.sql); try { Runtime.getRuntime().exec(cmd /c C:\\Program Files (x86)\\MySQL\\MySQL Server 5.1\\bin\\mysql.exe + --host=localhost --user=root --password=admin --database=studio < + file); } catch (Exception ex) { JOptionPane.showMessageDialog(null, Erro ao restaurar backup.\nMotivo: + ex); } //mysql --user=root --password=admin studio --execute=source D:\studio.sql } public static void backupBD(String nomeBD, String nomeBKP) { try { String comando = C:\\Program Files (x86)\\MySQL\\MySQL Server 5.1\\bin\\mysqldump; // String comando = // C:\\Arquivos de programas (x86)\\MySQL\\MySQL Server 5.1\\bin\\mysqldump; ProcessBuilder pb = new ProcessBuilder(comando, --user=root, --password=admin, nomeBD, --result-file=D:\\ + nomeBKP + .sql); pb.start(); } catch (IOException ex) { ex.printStackTrace(); } } public static void restauraBD(String nomeArqOrigem, String nomeBDDestino) { try { String comando = C:\\Program Files (x86)\\MySQL\\MySQL Server 5.1\\bin\\mysql; // String comando = // C:\\Arquivos de programas\\MySQL\\MySQL Server 5.1\\bin\\mysql; /* ProcessBuilder pb = new ProcessBuilder(comando,--user=root, --password=admin,nomeBDDestino,--execute= source ,nomeArqOrigem, .sql);*/ ProcessBuilder pb = new ProcessBuilder(comando,--user=root --password=admin studio --execute=source D:\\studio.sql); //mysql --user=root --password=admin studio --execute=source D:\studio.sql pb.start(); } catch (IOException ex) { ex.printStackTrace(); } /* * E para restaurar o banco de dados extraído anteriormente, utilize: * mysql -u root -p123 -h localhost banco_exemplo < backup_banco.sql */ } public static void fazBackup() { DateTime cal = new DateTime(); int dia = cal.getDayOfMonth(); int mes = cal.getMonthOfYear(); int ano = cal.getYear(); String snh = admin; //props.getSenha_bd(); String banco =studio; // props.getNm_banco(); File diretorio = new File(D:/SDO-Backup); File arquivo = new File(D:/SDO-Backup/bkp_+banco+_+ano+_+mes+_+dia+.sql); Boolean snbkp = true; // Cria diretório if(!diretorio.isDirectory()) new File(D:/SDO-Backup).mkdir(); // Cria Arquivo de Backup try { if (arquivo.isFile()){ if(JOptionPane.showConfirmDialog(null,Ja foi criado backup hoje, deseja substituir ?,Backup ja existe,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) { arquivo.delete(); snbkp = true; } else { snbkp = false; } } if(snbkp==true) { /* Process proc = Runtime.getRuntime().exec(cmd /c mysqldump -uroot -p+snh+ -h +ip+ +banco+ --result-file=D:/SDO-Backup/bkp_+banco+_+ano+ _+mes+_+dia+.sql); proc.waitFor(); */ String comando = C:\\Program Files (x86)\\MySQL\\MySQL Server 5.1\\bin\\mysqldump; ProcessBuilder pb = new ProcessBuilder(comando, --user=root, --password=+snh, banco, --result-file=D:\\SDO-Backup\\bkp_ +banco+_+ano+ _+mes+_+dia+.sql); pb.start(); int res = 0;//proc.exitValue(); if (res == 0) JOptionPane.showMessageDialog(null,Backup criado com Sucesso !); else { JOptionPane.showMessageDialog(null,Falha ao criar Backup. \n Verifique as configurações ou entre em contato com o suporte !, Erro ao criar backup, JOptionPane.ERROR_MESSAGE); } } } catch (IOException ex) { ex.printStackTrace(); System.out.println(ex); JOptionPane.showMessageDialog(null,Erro na criação do Backup !); } catch(Exception err){ System.out.println(err); JOptionPane.showMessageDialog(null,Erro na criação do Backup !); } } public static void restauraBackup() { int res; String arq, snh = admin, banco = studio; try{ JFileChooser chooser = new JFileChooser(D:\\); chooser.setDialogTitle(Selecione o arquivo de backup); chooser.showOpenDialog(chooser); File bkp; bkp = chooser.getSelectedFile(); arq = bkp.getPath(); Process proc = Runtime.getRuntime().exec(cmd /c mysql -uroot -p + snh + -f + banco + < + arq); proc.waitFor(); res = proc.exitValue(); if (res == 0) { JOptionPane.showMessageDialog(null,Backup Restaurado com sucesso !); } else { JOptionPane.showMessageDialog(null,Falha ao restaurar backup. \n Verifique as configurações ou entre em contato com o suporte !); } } catch(Exception ex){ ex.printStackTrace(); } } }
Responder
Clique aqui para fazer login e interagir na Comunidade :)