Pglogical复制集未按预期工作

时间:2016-08-24 11:44:54

标签: postgresql replication

我正在尝试设置pglogical复制。我有一个表,在提供程序服务器中有大约4行。

=========
employee_id |     visitor_email     | vistor_id |        date         |             message          
-------------+-----------------------+-----------+---------------------+--------------------------
       1 | roshan@gmail.com      |         1 | 2016-08-24 00:00:00 | This is the first test.
       2 | roshan@myrepublic.net |         2 | 2016-08-24 00:00:00 | This is the second test.
       3 | roshan@myrepublic.net |         3 | 2016-08-24 00:00:00 | This is the third test.
       4 | roshan@myrepublic.net |         4 | 2016-08-24 00:00:00 | This is the fourth test.
  ===============================

创建上述表格后。我在提供程序中创建了一个复制集。然后我配置了订户节点和订阅。理想情况下,我应该在订阅者中看到提供者表中的4行,但我只看到订阅者中的表结构,而不是数据。如果我在提供者表中添加一个新行,如下所示

INSERT INTO employees (employee_id, visitor_email, date, message) VALUES (5, 'roshan@myrepublic.net', current_date, 'This is the fifth test.'); 

现在,我可以在订阅者表中看到最后添加的行。开头添加的所有其他4行仍然缺失。我在这里做错了什么?

这是否意味着只考虑在创建replication_sets之后创建的数据?如何将表的全部内容添加到复制集。?

非常感谢任何帮助。?

此致 穆罕默德·罗森(Muhammed Roshan)

1 个答案:

答案 0 :(得分:1)

您可以发出resynchronise_table命令来提取所有内容。如您所见,所有后续插入都可以。

使用此功能:

pglogical.alter_subscription_resynchronize_table(subscription_name name, relation regclass)

您也可以在初始同步期间通过“synchronize_data”:

有关详细信息,请参阅以下文档中的2.3:

https://2ndquadrant.com/en/resources/pglogical/pglogical-docs/