云数据库 RDS-使用pglogical插件:进阶使用

时间:2024-09-06 14:25:21

进阶使用

  1. 在发布端和订阅端分别创建要复制的表。
    create table test(id int primary key, name text, reg_time timestamp);

    发布端和订阅端的表必须名字、结构一致。

  2. 在发布端给表插入数据。
    insert into test select generate_series(1,10000),'test',now();
  3. 在发布端将表加入复制集。
    -- 将所有的表加入到复制集
    SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
    -- 将指定的表加入到复制集
    SELECT pglogical.replication_set_add_table( set_name := 'default', relation := 'test',synchronize_data := true);

    如果执行sql将所有的表加入到复制集,那么在订阅端还需要执行以下步骤将数据同步,否则数据无法到达订阅端,订阅状态是unknown。

    select pglogical.alter_subscription_synchronize('subscription1');

    如果执行sql将指定的表加入到复制集,则默认会自动同步。

  4. 验证该表已经被加入到复制集。
    select * from pglogical.replication_set_table ;
  5. 订阅端查询订阅状态。
    select * from pglogical.show_subscription_table('subscription1','test');
  6. 订阅端查看表数据是否同步。
    select count(*) from test;
support.huaweicloud.com/usermanual-rds/rds_09_0064.html