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.
Vicente Maciel

Vicente Maciel

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

21/10/2011

Dyego Carmo

My god...
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar