2016-08-24 29 views
1

我正在尝试设置pglogical复制。我有一个在提供者服务器中有大约4行的表。Pglogical复制集不能按预期方式工作

========= 
employee_id |  visitor_email  | vistor_id |  date   |    message   
-------------+-----------------------+-----------+---------------------+-------------------------- 
     1 | [email protected]  |   1 | 2016-08-24 00:00:00 | This is the first test. 
     2 | [email protected] |   2 | 2016-08-24 00:00:00 | This is the second test. 
     3 | [email protected] |   3 | 2016-08-24 00:00:00 | This is the third test. 
     4 | [email protected] |   4 | 2016-08-24 00:00:00 | This is the fourth test. 
    =============================== 

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

INSERT INTO employees (employee_id, visitor_email, date, message) VALUES (5, '[email protected]', current_date, 'This is the fifth test.'); 

现在,我能够看到我的订户表中最后添加的行。在开始时添加的所有其他4行仍然缺失。我在这里做错了什么?

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

任何帮助将不胜感激。?

的问候,穆罕默德 罗山

回答

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/

+0

是的。它为我工作。谢谢d1ll1nger –

+0

没问题。考虑接受答案,如果它适合你。谢谢。 – d1ll1nger

+0

嗨,我想从我的供应商复制序列订阅。我为表和序列创建了不同的复制集和订阅。一旦我从订阅者开始订阅,表格就会被复制而没有任何问题,但是相应的序列不会被复制。即使我在对应的表中有多个条目,序列中的** last_value **字段仍保持为1。我从pglogical文档中读到,我可以发出** synchronize_sequence **函数。什么是“SELECT”查询? –