Наборы Pglogical репликации не работают должным образом

Я пытаюсь настроить pglogical репликацию. У меня есть таблица, которая имеет около 4 строк на сервере провайдера.

=========
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 строки, которые были добавлены в начале, по-прежнему отсутствуют. Что я здесь делаю неправильно?

Означает ли это, что будут учитываться только те данные, которые были созданы после создания наборов репликации? Как добавить все содержимое таблицы в набор репликации?

Любая помощь приветствуется.?

С уважением, Мухаммед Рошан


person Muhammed Roshan    schedule 24.08.2016    source источник


Ответы (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/

person d1ll1nger    schedule 24.08.2016
comment
Без проблем. Подумайте о том, чтобы принять ответ, если он сработал для вас. Спасибо. - person d1ll1nger; 16.09.2016
comment
Привет, я пытаюсь воспроизвести последовательности от моего провайдера к подписчику. Я создал разные наборы репликации и подписки как для таблиц, так и для последовательностей. Как только я запускаю подписку от подписчика, таблицы реплицируются без каких-либо проблем, но соответствующие последовательности не реплицируются. Поле last_value в последовательности по-прежнему равно 1, хотя в соответствующей таблице имеется более одной записи. Я прочитал в документации pglogical, что могу выполнить функцию synchronize_sequence. Что такое запрос SELECT для этого? - person Muhammed Roshan; 17.09.2016
comment
ВЫБЕРИТЕ синхронизацию_последовательности ('имя_последовательности'); Однако это необходимо выполнить на мастере, который, как я полагаю, будет выдавать синхронизацию подписчикам. - person d1ll1nger; 17.09.2016