小编ari*_*ang的帖子

将新表添加到发布后,PostgreSQL 逻辑复制不起作用

我是 PostgreSQL 逻辑复制的新手。我做了测试,在我向发布添加新表后,我发现复制不起作用,直到我重新创建订阅,我确定重新创建订阅不是最佳做法,请您告知如何制作订阅者为新表应用事务?

测试如下:

  1. 在主端和复制端创建第一个表:

     create table rep_test (a int primary key, b int);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在主端创建发布:

     CREATE PUBLICATION rep_test_pub FOR table public.rep_test;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在复制端创建订阅:

     CREATE SUBSCRIPTION rep_test_sub CONNECTION 'host=XXX port=5432 dbname=rocket user=XXX password=XXX' PUBLICATION rep_test_pub WITH (copy_data = false);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 测试复制,复制有效。初级侧:

     insert into rep_test values (1, 1); insert into rep_test values (2, 1);
    
    Run Code Online (Sandbox Code Playgroud)

    复制:

     select * from rep_test;
    
     *---*---*
     | a | b |
     *---*---*
     | 1 | 1 |
     | 2 | 1 |
     *---*---*
    
    Run Code Online (Sandbox Code Playgroud)
  5. 在主端和复制端创建一个新表

     create table rep_test (a int primary …
    Run Code Online (Sandbox Code Playgroud)

postgresql subscription logical-replication

2
推荐指数
1
解决办法
2638
查看次数