【问题标题】:Postgresql Replication slot error postgresqlPostgresql 复制槽错误 postgresql
【发布时间】:2020-07-25 03:19:47
【问题描述】:

我使用 Posgtresql 10。

我想将数据库“db”中的 2 个表复制到数据库“destination”中具有相同列的两个表。

在 postgresql.conf 中将 wal_level 值更改为逻辑值 和 max_replication_slots 到 10

没有防火墙

我在数据库“db”中创建了发布

ALTER ROLE my_user WITH REPLICATION LOGIN PASSWORD 'my_password';
CREATE PUBLICATION my_publication;
ALTER PUBLICATION my_publication ADD TABLE table1;
ALTER PUBLICATION my_publication ADD TABLE table2;

我在数据库“目标”中创建了一个带有插槽的订阅,因为我想在同一台服务器中复制:

SELECT pg_create_logical_replication_slot('test_slot_v1', 'pgoutput');
CREATE SUBSCRIPTION my_subscription CONNECTION 'host=localhost port=5432 password=my_password user=my_user dbname=db' PUBLICATION my_publication WITH (slot_name=test_slot_v1, create_slot=false);
alter subscription my_subscription refresh publication ;

第一次复制有效。然后,当我更改一个 varchar 条目(不是 FK)的值时,该值不会被复制,并且我在 postgres 日志中出现以下错误:

2020-04-12 16:16:57.886 CEST [720474] LOG:逻辑复制 订阅“my_subscription”的申请流程已开始 2020-04-12 16:16:57.888 CEST [720475] 错误:复制槽 “test_slot_v1”未在此数据库中创建 2020-04-12 16:16: 57.889 CEST [720474] 错误:无法从 WAL 流接收数据:错误:复制槽“test_slot_v1”未在 这个数据库 2020-04-12 16:16:57.890 CEST [712133] LOG:工作 进程:订阅 245251(PID 720474) 退出代码为 1

我确定我在保存订阅的数据库“目标”中创建了插槽。

有什么想法吗?提前谢谢你。

【问题讨论】:

    标签: sql postgresql replication database-replication


    【解决方案1】:

    我会回答我的问题: Postgresql 希望在我创建出版物的数据库“db”中创建插槽,而不是在创建订阅的数据库“目标”中。

    我做了什么:

    psql
    \c destination
    drop subscription my_subscription;
    \q
    psql
    \c db
    SELECT pg_create_logical_replication_slot('test_slot_v1', 'pgoutput');
    \q
    psql
    \c destination
    CREATE SUBSCRIPTION my_subscription CONNECTION 'host=localhost port=5432 password=my_password user=my_user dbname=db' PUBLICATION my_publication WITH (slot_name=test_slot_v1, create_slot=false);
    

    似乎不需要这个命令: 更改订阅 my_subscription 刷新发布;

    【讨论】:

    • 非常感谢。我已经为此工作了几天,现在感谢您的帖子,它可以工作了!
    • 很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 2010-11-03
    • 2021-07-29
    • 1970-01-01
    相关资源
    最近更新 更多