首页 > 解决方案 > 当表不同步时在 postgres 中启动或重新启动逻辑复制

问题描述

我在两个名为 test 的数据库中有一个表。我能够在源数据库中创建一行并将其复制到目标数据库中。但后来我删除了目标数据库中的行。我如何取回该行?如果每个表中有一百万行并且我想在两个表之间同步怎么办,因为无论出于何种原因,目标数据库中都有重复等。

这就是我所做的

create role sub247 with login password 'fakepassword' 
     replication;

选择 * FROM pg_stat_replication;

更改用户 sub247 登录连接限制 18;

在 SCHEMA public TO sub247 中的所有表上授予选择;

CREATE TABLE public.test ( 测试文本 COLLATE pg_catalog."default", test2 bigint ) WITH ( OIDS = FALSE ) TABLESPACE pg_default;

ALTER TABLE public.test OWNER 到 postgres;插入测试 (test,test2) 值 ('a',1)

更改表测试副本身份已满;为表测试创建发布 pub247b;

然后在目标数据库上

create subscription sub247b connection 'host=facebook.com dbname=247 user=sub247 password=fakepassword port=5432' publication pub247b;

然后过了一段时间......从测试中删除。

现在,我如何再次同步目标数据库上的测试

标签: postgresqllogical-replication

解决方案


推荐阅读