pg_create_logical_replication_slot, output-plugin

Lists: pgsql-ru-general
From: André Kutepow <isaev(dot)mail(at)mail(dot)ru>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: pg_create_logical_replication_slot, output-plugin
Date: 2023-07-10 12:17:51
Message-ID: 5ffb2ce4-e92c-e146-7791-a17c9d767467@mail.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

Доброго времени суток!

При создании слота репликации с 'pgoutput' плагином, получаю ошибку, что
поддерживаются только версии 1 и выше

SELECT pg_create_logical_replication_slot('slot_x2e__art', 'pgoutput');

2023-07-05 11:48:23.175 CEST [42328] FEHLER:  Client sendete
proto_version=0, aber wir unterstützen nur Protokoll 1 oder höher
2023-07-05 11:48:23.175 CEST [42328] ZUSAMMENHANG:  Slot »sub_x2e__art«,
Ausgabe-Plugin »pgoutput«, im Callback startup
2023-07-05 11:48:23.175 CEST [42328] ANWEISUNG:  SELECT * FROM
pg_logical_slot_get_changes('slot_x2e__art', NULL, NULL);

С плагином 'test_decoding', получаю ошибку, что 3 версия неизвестна)

SELECT pg_create_logical_replication_slot('slot_x2e__art',
'test_decoding');

2023-07-05 12:30:10.873 CEST [94960] FEHLER:  option "proto_version" =
"3" is unknown
2023-07-05 12:30:10.873 CEST [94960] ZUSAMMENHANG:  Slot
»slot_x2e__art«, Ausgabe-Plugin »test_decoding«, im Callback startup
2023-07-05 12:30:10.873 CEST [94960] ANWEISUNG:  START_REPLICATION SLOT
"slot_x2e__art" LOGICAL 0/0 (proto_version '3', publication_names
'"pub_x2e__art"')

При чём я не получал вроде данную ошибку в более ранних версиях, если
мне не изменяет память

Есть ещё какие-то варианты?

Заранее благодарен


From: Sergei Kornilov <sk(at)zsrv(dot)org>
To: André Kutepow <isaev(dot)mail(at)mail(dot)ru>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re:pg_create_logical_replication_slot, output-plugin
Date: 2023-07-10 12:32:59
Message-ID: 297721688992379@jizoyk2ozf2hzigw.sas.yp-c.yandex.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

Привет
кто инициирует чтение, какой клиент?

Пока что всё верно, в pgoutput минимальная версия протокола всегда была 1. А test_decoding по своей сути существования не требует версионирования протокола и такой опции у него просто нет.

regards, Sergei


From: Sergei Kornilov <sk(at)zsrv(dot)org>
To: André Kutepow <isaev(dot)mail(at)mail(dot)ru>, pgsql-ru-general(at)postgresql(dot)org
Subject: Re: pg_create_logical_replication_slot, output-plugin
Date: 2023-07-10 16:41:38
Message-ID: 54811689007298@6zr3mkppzhlmnxt7.iva.yp-c.yandex.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

> Пока играюсь в pgAdmin, если правильно понял вопрос... (PG v15.1)

Я очень сильно сомневаюсь, что pgadmin умеет вызывать START_REPLICATION SLOT.

PS: вернул email списка рассылки в адреса получателей, не теряйте его пожалуйста


From: André Kutepow <a(dot)kutepow(at)prodat-sql(dot)de>
To: Sergei Kornilov <sk(at)zsrv(dot)org>, pgsql-ru-general(at)postgresql(dot)org
Subject: Re: pg_create_logical_replication_slot, output-plugin
Date: 2023-07-11 07:56:59
Message-ID: 21acbea1-7a42-65bd-6cff-81664237a740@prodat-sql.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

создаю на одной стороне публикацию, на другой подписку.
т.к. обе базы в одном кластере, автоматику создания слота отключил, т.к.
там проблема взаимоблокировки получается, потом создаю его вручную
в postgre есть системные функции для создания слота
https://pgpedia.info/p/pg_create_logical_replication_slot.html
активирую подписку,
на стороне публикации делаю INSERT, который реплицируется на подписчике.
внутренние механизмы вызывают Apply-Worker -> START_REPLICATION SLOT полагаю

Am 10.07.2023 um 18:41 schrieb Sergei Kornilov:
>> Пока играюсь в pgAdmin, если правильно понял вопрос... (PG v15.1)
> Я очень сильно сомневаюсь, что pgadmin умеет вызывать START_REPLICATION SLOT.
>
> PS: вернул email списка рассылки в адреса получателей, не теряйте его пожалуйста