Fazer backup do postgre atraves do runtime

3 respostas
daniloCosta

ola pessoal
estou com um problema ao efetuar o backup do meu banco atraves do metodo runtime. to conseguindo gerar o arquivo, porem o arquivo está em branco.
jah pesquisei em varios foruns aqui, porem n ficou claro pra mim.
s alguem puder m ajudar agradeço

aqui tah meu codigo

Runtime.getRuntime().exec("C:\Arquiv~1\Postgr~1\8.4\bin\pg_dump.exe -i -h localhost -p 5432 -U postgres -F c -b -v -f \"D:\Danilo Costa\teste.backup");

3 Respostas

L

Qdo precisei fiz assim:

public class Backup {  
        public void realizaBackup(){  
            Runtime r = Runtime.getRuntime();              
            try{  
                Process p = r.exec(" \"C:\Arquivos de programas\PostgreSQL\8.0\pgAdmin III\pg_dump.exe\" -i -h localhost -p 5432 -U user -F c -b -v -f \"C:\backup\bancodados.backup\" seubanco");  
                if(p != null){  
                   OutputStream outputStream = p.getOutputStream();  
                   outputStream.write("suasenha\r\n".getBytes());  
                   outputStream.flush();  
                   outputStream.close();  
                   InputStreamReader streamReader = new InputStreamReader( p.getErrorStream() );  
                   BufferedReader reader = new BufferedReader( streamReader );  
                   String linha;  
                   while( (linha = reader.readLine()) != null )  
                       System.out.println(linha);  
               }  
           } catch(IOException ioe){  
               ioe.printStackTrace();  
           }  
       }  
   }

Parece que eh igual ao seu mas funciona aki.

daniloCosta
executei esse codigo na minha aplicação, soh q deu no mesmo. gera o arquivo em branco. e outra quando eu clico no botão que chama o metodo ele trava a tela. tenho q ir no gerenciador de tarefas e fechar o pg_dump, pra fechar a tela.
public void backup()
        {

            Runtime r = Runtime.getRuntime();
         try{
             Process p = r.exec(" \"C:\Arquiv~1\Postgr~1\8.4\bin\pg_dump.exe\" -i -h localhost -p 5432 -U escola -F c -b -v -f \"C:\Passivo\bk\bancodadosTeste.backup\" teste");
             if(p != null){
                OutputStream outputStream = p.getOutputStream();
                outputStream.write("12345\r\n".getBytes());
                outputStream.flush();
                outputStream.close();
                InputStreamReader streamReader = new InputStreamReader( p.getErrorStream() );
                BufferedReader reader = new BufferedReader( streamReader );
                String linha;
                while( (linha = reader.readLine()) != null )
                    System.out.println(linha);
            }
        } catch(IOException ioe){
            ioe.printStackTrace();
        }
kenneth

Fala brow,

Cara, se eu nao me engano, isso acontece porque o pg_dump.exe fica esperando a senha do usuario…

Da uma olhada aqui, acho que o cara conseguiu resolver:

http://www.guj.com.br/posts/list/207154.java

Abraco.

Criado 12 de outubro de 2010
Ultima resposta 13 de out. de 2010
Respostas 3
Participantes 3