我需要使用 Java 以编程方式设置/管理两个 PostgreSQL 实例之间的复制(PostgreSQL 内置复制或通过 Slony 等第三方解决方案)。是否有任何 Java API?提前致谢。
最佳答案
除非您要使用 AWS RDS 或 Heroku Postgres 等托管服务,否则唯一的 Java API 是那些涉及文件访问和进程管理的。如果您使用的是 AWS RDS,则可以使用 the AWS Java SDK ;对于 Heroku,可能有类似的东西。
如果您正在使用库存直接管理的 PostgreSQL 实例,您将需要打开/解析/修改/写入任何相关的配置文件,或使用外部工具来执行此操作。要启动/停止 DB,您需要通过进程调用使用 pg_ctl
等常规实用程序。如果您需要在计算机上远程工作,您可能希望使用 Java SSH 库之一。
因此您将使用类似 ProcessBuilder
的东西, java.io.InputStreamReader
等,可能与 JSCH 等远程 shell 工具一起使用.
如果你想花点时间,你可以使用SSH作为你的主JVM和每个节点上的JVM之间的传输,它负责运行进程和修改文件,你可以通过SSH channel 交换序列化消息进行通信.虽然设置它的代码有点多,但效果非常好,与大多数其他方法相比,它可以让您在更大程度上“用 Java 思考”。
就个人而言 - 我强烈建议使用 Puppet、Chef、Ansible 等尽可能地实现自动化,然后让您的 Java 代码调用自动化工具。另请查看 repmgr .
关于java - 使用 Java 的 PostgreSql 复制配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26969404/