Como fazer um backup no firebird via java?

5 respostas
P

Olá pessoal

Estou com um problema na minha aplicação, eu quero gerar um backup do banco de dados dela mas não consigo fazer de forma alguma
eu ultilizo o banco firebird.

Tentei usar o gbk de diversas formas mas não obtive exito

aqui vai algumas das muitas formas que tentei

try{
        Process processo = Runtime.getRuntime().exec("cmd /c gbak  -user SYSDBA -pas masterkey localhost:C:\\Users\Paulo\\Databases\\CasaCamarim.fdb C:\\Users\\Paulo\\Databases\\backup.fbk");
catch (IOException ex){
         ex.printStackTrace();
     }
try{
        Process processo = Runtime.getRuntime().exec("cmd /c C:\\Program Files\\Firebird\\Firebird_2_1\\bin gbak  -user SYSDBA -pas masterkey localhost:C:\\Users\Paulo\Databases\CasaCamarim.fdb C:\Users\Paulo\Databases\backup.fbk");
catch (IOException ex){
         ex.printStackTrace();
     }

Alguem mi da uma luz por favor :cry:
obrigado

5 Respostas

P

Conseguiiii :smiley:

para aqueles que estiverem com o mesmo problema que eu:

basta só ao inves de usar Process usar Scanner e botar esse getInputStream() no final assim :

try{
     Scanner s = new Scanner(Runtime.getRuntime().exec("C:\\Program Files\\Firebird\\Firebird_2_1\\bin\\gbak.exe -user SYSDBA -pas masterkey  C:\\BancoDeDados C:\\Backup.fbk").getInputStream());
}
catch (IOException ex){
      ex.printStackTrace();
}

valeeu :thumbup:

D

Oi ~Paulo Junior~, sou iniciante em java e gostaria que minha aplicação tivesse esta opção de backup, então me diz uma coisa: este código você colocou no actionPerformed de algum botão???
e tipo assim: eu tenho um botão de fechar que encerra a aplicação:

private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {
    private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {                                        
        System.exit(0);
    }                                       
}

eu quero que qndo o usuário clique pra fechar o programa ele apareça uma JOptionPane pedindo se ele quer fazer o backup ou não, ai se o usuário clicar em Sim é aí que coloco o código que vc descreveu pra fazer o backup???

Desde já, obrigadoO pela ajuda!!!

D

Oi ~Paulo Junior~, olha so, testei o código no actionPerformed do botão de fechar e ai ele ta gerando o arquivo blz, mas na hora que vou conectar o arquivo no SGBD pra verificar se copiou todos os dados ele diz que não foi possivel fazer a conexão, ai mudei o arquivo de .fbk pra .fdb que é o arquivo de firebird q to usando…
o código no botão de fechar esta assim:

private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {                                        
        int opcao = JOptionPane.showConfirmDialog(null,"Deseja fazer backup da base de dados?", "BACKUP", JOptionPane.YES_NO_OPTION);
        if (opcao == JOptionPane.YES_OPTION){
            try{   
                Scanner s = new Scanner(Runtime.getRuntime().exec("C:\\Program Files\\Firebird\\Firebird_2_1\\bin\\gbak.exe -user SYSDBA -pas masterkey  C:/ServiceSystem/BANCO.FDB C:/ServiceSystem/BACKUP.FDB").getInputStream());
                JOptionPane.showMessageDialog(null,"Backup realizado com sucesso!");
            }catch (IOException ex){
                ex.printStackTrace();   
            }
        }
        else{
            System.exit(0);
        }
    }

Vc pode me ajudar a ver o que esta dando errado? meu usuário e senha são estes padrões…e como eu posso testar se o backup foi feito com sucesso??Ali no código eu to colocando uma mensagem que o backup foi realizado com sucesso, mas não estou testando se o arquivo realmente foi criado e tal…como eu posso testar isso???

Obrigado!

K

Eae amigo, blz??
Sei que o post é antigo, mas estou com o mesmo objetivo, e preciso de um norte nesse assunto.
Você conseguiu resolver teu problema??

Aguardo contato.

Abs.

D?ora Cole Bernardi:
Oi ~Paulo Junior~, olha so, testei o código no actionPerformed do botão de fechar e ai ele ta gerando o arquivo blz, mas na hora que vou conectar o arquivo no SGBD pra verificar se copiou todos os dados ele diz que não foi possivel fazer a conexão, ai mudei o arquivo de .fbk pra .fdb que é o arquivo de firebird q to usando…
o código no botão de fechar esta assim:

private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {                                        
        int opcao = JOptionPane.showConfirmDialog(null,"Deseja fazer backup da base de dados?", "BACKUP", JOptionPane.YES_NO_OPTION);
        if (opcao == JOptionPane.YES_OPTION){
            try{   
                Scanner s = new Scanner(Runtime.getRuntime().exec("C:\\Program Files\\Firebird\\Firebird_2_1\\bin\\gbak.exe -user SYSDBA -pas masterkey  C:/ServiceSystem/BANCO.FDB C:/ServiceSystem/BACKUP.FDB").getInputStream());
                JOptionPane.showMessageDialog(null,"Backup realizado com sucesso!");
            }catch (IOException ex){
                ex.printStackTrace();   
            }
        }
        else{
            System.exit(0);
        }
    }

Vc pode me ajudar a ver o que esta dando errado? meu usuário e senha são estes padrões…e como eu posso testar se o backup foi feito com sucesso??Ali no código eu to colocando uma mensagem que o backup foi realizado com sucesso, mas não estou testando se o arquivo realmente foi criado e tal…como eu posso testar isso???

Obrigado!

Z

tento esse cód abaixo mas nao consigo

meu sistema roda em WINDOWS 7 e o servidor tá em um LINUX CENTOS

Runtime.getRuntime().exec("gbak -v -t -user SYSDBA -password O45zz73 -service 192.9.201.99/3050:service_mgr 192.9.201.99/3050:/sistemas/GerenciadorLivros/db/db.fdb 192.9.201.99/3050:/sistemas/GerenciadorLivros/db_bkp/db_bkp.fbk");

alguem tem alguma ideia?

Criado 6 de janeiro de 2009
Ultima resposta 15 de jan. de 2013
Respostas 5
Participantes 4