Backup PostgreSQL com pg_dump... Já tentei de tudo

3 respostas
P

Pessoal, já pesquisei por dias e dias, ja implementei todas as soluções possíveis e mesmo assim sem sucesso.

Gostaria de fazer o backup do banco de dados fazendo a chamada so pg_dump via código java.

List<String> comandos = new ArrayList<String>();
		comandos.add("pg_dump.exe");
		comandos.add("-i");
		comandos.add("-h");
		comandos.add(MEU_HOST);
		comandos.add("-p");
		comandos.add(5432);
		comandos.add("-U");
		comandos.add(MEU_USUÁRIO);
		comandos.add("-F");
		comandos.add("c");
		comandos.add("-b");
		comandos.add("-v");
		comandos.add("-f");
		comandos.add("\\Temp\\DB_.Backup");
		comandos.add("banco_teste");

		ProcessBuilder pb = new ProcessBuilder(comandos);

		pb.environment().put("PGPASSWORD", MINHA_SENHA);		

		try {
		    final Process process = pb.start();

		    final BufferedReader r = new BufferedReader(
			    new InputStreamReader(process.getErrorStream()));
		    String line = r.readLine();
		    while (line != null) {
			System.err.println(line);
			line = r.readLine();
		    }
		    r.close();

		    final int dcertExitCode = process.waitFor();

		} catch (IOException e) {
		    e.printStackTrace();
		} catch (InterruptedException ie) {
		    ie.printStackTrace();
		}

O erro retornado:

pg_dump: [archiver (db)] connection to database "banco_teste" failed: FATAL:  password authentication failed for user MEU_USUARIO
FATAL:  password authentication failed for user MEU_USUARIO
pg_dump: *** aborted because of error

Eu acho que o código java não está setando a Variável PGPASSWORD, e assim não concuindo o processo. Gostaria de ma solução que não envolvesse criar um arquivo BAT, pois gostaria de manter em sigilo os dados do banco para o cliente.

Muito obrigado amigos e desde ja agradeço.

3 Respostas

L

aki:

[url]

[/url]

venomtotal

Já tentou debugar dando um system.out no comando que vc montou, e verificar se há algum erro nele, tipo, faltando algum caractere, por exemplo?

P

Resolvido…

Resolvi redefinindo a senha… Não descobri o motivo para a senha antiga estar dando errado, pois eu a utilizava para efetuar login pelo pg_admin…

Sem mais, muito obrigado a todos…

Criado 28 de fevereiro de 2011
Ultima resposta 28 de fev. de 2011
Respostas 3
Participantes 3