Java 中 Aurora Postgres 的逻辑复制

问题描述 投票:0回答:1

我的目标是在 JVM 上运行的系统中流式传输 Postgres WAL。我正在使用 Aurora RDS Postgres。

如果我尝试运行以下命令:

    PGReplicationStream stream =
        pgConnection.getReplicationAPI()
            .replicationStream()
            .logical()
            .withSlotName("test_slot")
            .withStartPosition(lsn)
            .start();

我得到错误:

; (err) ERROR: syntax error at or near "START_REPLICATION"
; (err)   Position: 1

Postgres 记录以下命令:

:ERROR:  syntax error at or near "START_REPLICATION" at character 1
:STATEMENT:  START_REPLICATION SLOT test_slot LOGICAL 0/40DCC70;

这看起来确实像 jdbc 驱动程序正在尝试编写的命令。 (见这里

START_REPLICATION 似乎是 Postgres 支持的命令。是极光RDS不支持这个吗?如果是这样,是否有其他方法可以做到这一点?

postgresql amazon-rds amazon-aurora
1个回答
0
投票

PostgreSQL 服务器似乎无法识别 START_REPLICATION 命令。

一个可能的原因可能是数据库中未启用提供逻辑解码功能的 pgoutput 扩展。您可以尝试通过在 PostgreSQL 控制台中运行以下命令来启用它:

创建扩展 pgoutput; 我希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.