这是我在java中使用pg_dump 9.3备份数据库的代码。 我遇到的问题是,总是结果文件是空的,退出代码是1,任何想法?如何使用java备份postgres数据库
public static void backupDb() throws IOException, InterruptedException {
Runtime rt = Runtime.getRuntime();
Process p;
ProcessBuilder pb;
rt = Runtime.getRuntime();
pb = new ProcessBuilder(
"C:\\Program Files\\PostgreSQL\\9.3\\bin\\pg_dumpall.exe",
"--host", "localhost",
"--port", "5432",
"--username", "postgres",
"--no-password",
"--format", "custom",
"--blobs",
"--verbose", "--file", "D:\\service_station_backup.backup", "service_station");
p = pb.start();
p.waitFor();
System.out.println(p.exitValue());
}
但是你为什么在这里使用java? – e4c5
进程/应用程序是否具有对文件位置@Abdelwahhab的写入权限?例如,进程的用户标识是什么,用户标识是否可以访问输出文件? – pnorton
@pnorton是的,进程可以访问输出文件,该文件被正确创建,但没有内容被转储到它。我认为问题是使用postgres服务器密码。 – Wolverine219