如何使用Java进行PostgreSQL数据库备份

时间:2017-06-05 09:38:54

标签: java linux postgresql

我想使用PostgreSQL数据库进行备份。 我已尝试使用以下代码,但我得到了:

  

错误pg_dump:命令行参数太多(首先是“postgres”)尝试“pg_dump --help”获取更多信息。

Runtime r = Runtime.getRuntime();
Process p;
ProcessBuilder pb;
r = Runtime.getRuntime();
pb = new ProcessBuilder( 
        "/usr/pgsql-9.3/bin/pg_dump",
        "--host", "localhost",
        "--port", "5432",
        "--username", "postgres",
        "--dbname", "postfixdb",
        "--role", "postgres",
        "--password"," postgres",
        "--verbose",
       "/usr/pg_dump.backup");
pb.redirectErrorStream(true);
p = pb.start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String ll;
while ((ll = br.readLine()) != null) { System.out.println(ll); } 

1 个答案:

答案 0 :(得分:1)

请参阅the psql documentation了解调用语法和允许选项列表。

首先尝试在命令行上运行它,只有在成功时才尝试从Java运行它。

明显错误列表:

  • “用户”的选项为-U(大写)。

  • -p用于TCP端口号。

  • 没有-B选项。

  • 没有-r选项。