Thread: logical replication problem
Hi! Setup: - db-server_A on port 5432 - db-server_B on port 5433 on db-server_A: postgres=# \dRp Liste der Publikationen Name | Eigentümer | Alle Tabellen | Inserts | Updates | Deletes ------+------------+---------------+---------+---------+--------- mig1 | postgres | t | t | t | t on db-server_B: postgres=# \dRs Liste der Subskriptionen Name | Eigentümer | Eingeschaltet | Publikation ------+------------+---------------+------------- sub1 | postgres | t | {mig1} in db-server_A pg_hba.conf: local replication postgres peer host replication postgres 127.0.0.1/32 ident host replication postgres ::1/128 ident on db-server_A: postgres# CREATE PUBLICATION mig1 FOR ALL TABLES; CREATE PUBLICATION the command on db-server_B: postgres# CREATE SUBSCRIPTION sub1 CONNECTION 'host=127.0.0.1 port=5432 dbname=mydb user=postgres PUBLICATION mig1; NOTICE: created replication slot "sub1" on publisher CREATE SUBSCRIPTION worked as expected. But: instead of starting replication I find Errors within db-server_B logs: 2019-01-24 10:57:58.549 CET [28956] LOG: Apply-Worker für logische Replikation für Subskription »sub1« hat gestartet 2019-01-24 10:57:58.553 CET [28956] FEHLER: konnte keine Daten vom WAL-Stream empfangen: FEHLER: Publikation »mig1« existiert nicht KONTEXT: Slot »sub1«, Ausgabe-Plugin »pgoutput«, im Callback change, zugehörige LSN 47/B4BCA2A8 2019-01-24 10:57:58.554 CET [5982] LOG: Background-Worker »logical replication worker« (PID 28956) beendete mit Status 1 Configuration was set on both servers to include wal_level = logical Any ideas why this does not work as expected? Any further ideas what to prove on db-server_A and db-server_B? -- Thomas
On Mon, Jan 28, 2019 at 11:15 AM Pavan Teja <pavan.postgresdba@gmail.com> wrote: > > Does the db_server_B has data in it?? Yes, it has -- about 51GiByte ... Changed frequently. > Regards, > Pavan > > On Mon 28 Jan, 2019, 3:42 PM Thomas Schweikle <tschweikle@gmail.com wrote: >> >> Hi! >> >> Setup: >> >> - db-server_A on port 5432 >> - db-server_B on port 5433 >> >> on db-server_A: >> postgres=# \dRp >> Liste der Publikationen >> Name | Eigentümer | Alle Tabellen | Inserts | Updates | Deletes >> ------+------------+---------------+---------+---------+--------- >> mig1 | postgres | t | t | t | t >> >> on db-server_B: >> postgres=# \dRs >> Liste der Subskriptionen >> Name | Eigentümer | Eingeschaltet | Publikation >> ------+------------+---------------+------------- >> sub1 | postgres | t | {mig1} >> >> in db-server_A pg_hba.conf: >> local replication postgres peer >> host replication postgres 127.0.0.1/32 ident >> host replication postgres ::1/128 ident >> >> on db-server_A: >> postgres# CREATE PUBLICATION mig1 FOR ALL TABLES; >> CREATE PUBLICATION >> >> the command on db-server_B: >> postgres# CREATE SUBSCRIPTION sub1 CONNECTION 'host=127.0.0.1 >> port=5432 dbname=mydb user=postgres PUBLICATION mig1; >> NOTICE: created replication slot "sub1" on publisher >> CREATE SUBSCRIPTION >> >> worked as expected. >> But: instead of starting replication I find Errors within db-server_B logs: >> 2019-01-24 10:57:58.549 CET [28956] LOG: Apply-Worker für logische >> Replikation für Subskription »sub1« hat gestartet >> 2019-01-24 10:57:58.553 CET [28956] FEHLER: konnte keine Daten vom >> WAL-Stream empfangen: FEHLER: Publikation »mig1« existiert nicht >> KONTEXT: Slot »sub1«, Ausgabe-Plugin »pgoutput«, im Callback >> change, zugehörige LSN 47/B4BCA2A8 >> 2019-01-24 10:57:58.554 CET [5982] LOG: Background-Worker »logical >> replication worker« (PID 28956) beendete mit Status 1 >> >> Configuration was set on both servers to include >> wal_level = logical >> >> Any ideas why this does not work as expected? Any further ideas what >> to prove on db-server_A and db-server_B? >> >> >> -- >> Thomas >> -- Thomas
And that's the reason for the error. In the subscriber no need of any data. Jus structure sync is enough. Try truncating the database and start the replication from fresh ull get rid of the errors
Regards,
Pavan
On Mon 28 Jan, 2019, 3:50 PM Thomas Schweikle <tschweikle@gmail.com wrote:
On Mon, Jan 28, 2019 at 11:15 AM Pavan Teja <pavan.postgresdba@gmail.com> wrote:
>
> Does the db_server_B has data in it??
Yes, it has -- about 51GiByte ... Changed frequently.
> Regards,
> Pavan
>
> On Mon 28 Jan, 2019, 3:42 PM Thomas Schweikle <tschweikle@gmail.com wrote:
>>
>> Hi!
>>
>> Setup:
>>
>> - db-server_A on port 5432
>> - db-server_B on port 5433
>>
>> on db-server_A:
>> postgres=# \dRp
>> Liste der Publikationen
>> Name | Eigentümer | Alle Tabellen | Inserts | Updates | Deletes
>> ------+------------+---------------+---------+---------+---------
>> mig1 | postgres | t | t | t | t
>>
>> on db-server_B:
>> postgres=# \dRs
>> Liste der Subskriptionen
>> Name | Eigentümer | Eingeschaltet | Publikation
>> ------+------------+---------------+-------------
>> sub1 | postgres | t | {mig1}
>>
>> in db-server_A pg_hba.conf:
>> local replication postgres peer
>> host replication postgres 127.0.0.1/32 ident
>> host replication postgres ::1/128 ident
>>
>> on db-server_A:
>> postgres# CREATE PUBLICATION mig1 FOR ALL TABLES;
>> CREATE PUBLICATION
>>
>> the command on db-server_B:
>> postgres# CREATE SUBSCRIPTION sub1 CONNECTION 'host=127.0.0.1
>> port=5432 dbname=mydb user=postgres PUBLICATION mig1;
>> NOTICE: created replication slot "sub1" on publisher
>> CREATE SUBSCRIPTION
>>
>> worked as expected.
>> But: instead of starting replication I find Errors within db-server_B logs:
>> 2019-01-24 10:57:58.549 CET [28956] LOG: Apply-Worker für logische
>> Replikation für Subskription »sub1« hat gestartet
>> 2019-01-24 10:57:58.553 CET [28956] FEHLER: konnte keine Daten vom
>> WAL-Stream empfangen: FEHLER: Publikation »mig1« existiert nicht
>> KONTEXT: Slot »sub1«, Ausgabe-Plugin »pgoutput«, im Callback
>> change, zugehörige LSN 47/B4BCA2A8
>> 2019-01-24 10:57:58.554 CET [5982] LOG: Background-Worker »logical
>> replication worker« (PID 28956) beendete mit Status 1
>>
>> Configuration was set on both servers to include
>> wal_level = logical
>>
>> Any ideas why this does not work as expected? Any further ideas what
>> to prove on db-server_A and db-server_B?
>>
>>
>> --
>> Thomas
>>
--
Thomas
On 28/1/19 12:12 μ.μ., Thomas Schweikle wrote: > Hi! > > Setup: > > - db-server_A on port 5432 > - db-server_B on port 5433 > > on db-server_A: > postgres=# \dRp > Liste der Publikationen > Name | Eigentümer | Alle Tabellen | Inserts | Updates | Deletes > ------+------------+---------------+---------+---------+--------- > mig1 | postgres | t | t | t | t > > on db-server_B: > postgres=# \dRs > Liste der Subskriptionen > Name | Eigentümer | Eingeschaltet | Publikation > ------+------------+---------------+------------- > sub1 | postgres | t | {mig1} > > in db-server_A pg_hba.conf: > local replication postgres peer > host replication postgres 127.0.0.1/32 ident > host replication postgres ::1/128 ident > > on db-server_A: > postgres# CREATE PUBLICATION mig1 FOR ALL TABLES; > CREATE PUBLICATION > > the command on db-server_B: > postgres# CREATE SUBSCRIPTION sub1 CONNECTION 'host=127.0.0.1 > port=5432 dbname=mydb user=postgres PUBLICATION mig1; > NOTICE: created replication slot "sub1" on publisher > CREATE SUBSCRIPTION > > worked as expected. > But: instead of starting replication I find Errors within db-server_B logs: > 2019-01-24 10:57:58.549 CET [28956] LOG: Apply-Worker für logische > Replikation für Subskription »sub1« hat gestartet > 2019-01-24 10:57:58.553 CET [28956] FEHLER: konnte keine Daten vom > WAL-Stream empfangen: FEHLER: Publikation »mig1« existiert nicht > KONTEXT: Slot »sub1«, Ausgabe-Plugin »pgoutput«, im Callback > change, zugehörige LSN 47/B4BCA2A8 > 2019-01-24 10:57:58.554 CET [5982] LOG: Background-Worker »logical > replication worker« (PID 28956) beendete mit Status 1 It could help if your logs were in English, anyways any error prior to that? Closely monitoring the subscription node isvery important. Any error could stall / pause logical replication. > > Configuration was set on both servers to include > wal_level = logical > > Any ideas why this does not work as expected? Any further ideas what > to prove on db-server_A and db-server_B? > > -- Achilleas Mantzios IT DEV Lead IT DEPT Dynacom Tankers Mgmt