From: | Michail Nikolaev <michail(dot)nikolaev(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Data loss on logical replication, 12.12 to 14.5, ALTER SUBSCRIPTION |
Date: | 2022-12-28 11:22:08 |
Message-ID: | CANtu0ogfZ2WhtFns7TXmJh8YX9mxd=v+RWtYT=_GLEf8fB6SOQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello.
> None of these entries are from the point mentioned by you [1]
> yesterday where you didn't find the corresponding data in the
> subscriber. How did you identify that the entries corresponding to
> that timing were missing?
Some of the before the interval, some after... But the source database
was generating a lot of WAL during logical replication
- some of these log entries from time AFTER completion of initial sync
of B but (probably) BEFORE finishing B table catch up (entering
streaming mode).
Just to clarify, tables A, B and C are updated in the same
transaction, something like:
BEGIN;
UPDATE A SET x = x +1 WHERE id = :id;
INSERT INTO B(current_time, :id);
INSERT INTO C(current_time, :id);
COMMIT;
Other (non-mentioned) tables also included into this transaction, but
only B missed small amount of data.
So, shortly the story looks like:
* initial sync of A (and other tables) started and completed, they are
in streaming mode
* B and C initial sync started (by altering PUBLICATION and SUBSCRIPTION)
* B sync completed, but new changes are still applying to the tables
to catch up primary
* logical replication apply worker is restarted because IO error on WAL receive
* Postgres killed
* Postgres restarted
* C initial sync restarted
* logical replication apply worker few times restarted because IO
error on WAL receive
* finally every table in streaming mode but with small gap in B
Thanks,
Michail.
From | Date | Subject | |
---|---|---|---|
Next Message | Maxim Orlov | 2022-12-28 11:46:23 | Re: add \dpS to psql |
Previous Message | Maxim Orlov | 2022-12-28 10:58:54 | Re: Add SHELL_EXIT_CODE to psql |