java - 使用 Java 的 PostgreSql 复制配置

标签 java postgresql database-replication

我需要使用 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/

相关文章:

java - Google Play 游戏 Android 登录获取错误代码 4

java - 将文件中的数据导入到从不同类调用的 int 数组中

java - 如何使用滑动手势删除回收 View 中的卡片?

postgresql - 从数据工厂读取 Postgress(以 SQL_ASCII 编码)

postgresql - 如何设置和测试某个位置是否正在使用最近的 rds 只读副本? aws

java - 为什么 javac 提示与类的类型参数无关的泛型?

postgresql - 如果满足特定条件,如何自动更新表

hibernate - JPA 大写表名

mongodb - Mongo 分片不删除源分片中分片集合的数据

连接到复制的 mysql 数据库的 Java 应用程序