[RESOLVIDO]Realizar Backup PostgreSQL

4 respostas
M

Olá galera do GUJ!
Estou aqui com uma dificuldade em realizar o backup do banco PostgreSQL…
Eu tentei fazer pelo .bat que tem exemplos aqui no GUJ, mas não deu certo, tentei fazer via código no meu programa java, também não deu (OBS.: via codigo até cria o backup porem vem vazio “0kb”)…
Gostaria de saber como eu poderia fazer esse meu backup do PostgreSQL… segue abaixo como eu tentei fazer…
Pelo .bat… O diretorio está correto e o nome do banco também

set PGUSER=postgres
set PGPASSWORD=psql
 
for /f "tokens=1,2,3,4 delims=/ " %%a in ('DATE /T') do set Date=%%b-%%c-%%d
 
\C:\Program Files (x86)\PostgreSQL\9.0\bin\pg_dump.exe -i -h localhost -p 5432 -U postgres -F c -b -o -v -f "C:/MeuBanco%Date%.backup" Cliente

pause

Obs. pelo .bat da um erro dizendo "A sintaxe do nome do arquivo, do nome do diretorio ou do rotulo do volume está incorreta.

Via código no java…

Runtime.getRuntime().exec("C:\\Program Files (x86)\\PostgreSQL\\9.0\\bin\\pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f \"C:\\Cliente.backup\" Cliente");

Desde já, agradeço a ajuda!

4 Respostas

L

usei este post http://www.guj.com.br/java/33952-backup-no-postgresql e resolveu meu problema

M

eu ja havia testado esse mesmo tópico porem ele “trava” simplesmente não faz nada, apena cria o .backup na pasta que eu escolhi mas continua com 0kb, eu depurei agora e ele para onde diz…

para exatamente ai e nem chega a entrar no while…

M

estou usando o postgresql 9.0 no windows 7 64 bits, faz alguma diferença?

M

[RESOLVIDO]
consegui achar na net e deu certo… segue abaixo o código que eu encontrei para futuras duvidas semelhantes…

try{    
ProcessBuilder pb;    
Process p;    
pb = new ProcessBuilder("C:/Program Files/PostgreSQL/8.4/bin/pg_dump.exe ", "-i", "-h", "localhost", "-p", "5432","-U", "seuusuario", "-F", "c", "-b", "-v" ,"-f", "C:\\Users\\MARK\\Desktop\\TesteBKP.sql", "teste");    
pb.environment().put("PGPASSWORD", "suasenha");    
pb.redirectErrorStream(true);    
p = pb.start();     
}catch(Exception ex){    
    JOptionPane.showMessageDialog(null, ex);    
}

Obrigado a lgweb!

Criado 16 de novembro de 2011
Ultima resposta 16 de nov. de 2011
Respostas 4
Participantes 2