RE: Starting logical replication at arbitrary point that's available in WAL

From: "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>
To: Alexander Uvizhev <uvizhe(at)posteo(dot)net>
Cc: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: RE: Starting logical replication at arbitrary point that's available in WAL
Date: 2024-12-27 12:20:05
Message-ID: OS0PR01MB5716587A22BEBE121E988AC6940E2@OS0PR01MB5716.jpnprd01.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Friday, December 27, 2024 7:39 PM Alexander Uvizhev <uvizhe(at)posteo(dot)net> wrote:

Hi,

> I'm doing a logical replication using streaming replication protocol and
> I'm trying to start a stream from a certain arbitrary point that's
> available in WAL. However, both CREATE_REPLICATION_SLOT and
> pg_create_logical_replication_slot() create slot with nearly last LSN/XID.
>
> Is it possible to create a replication slot with arbitrary LSN/XID values?

I think it's not supported to specify arbitrary LSN/XID values for a newly
created slot in core. However, if you have an existing slot with an older LSN/XID, you
can copy it using pg_copy_logical_replication_slot, and then advance the copied
slot to your desired position with pg_replication_slot_advance.

>
> Also pg_create_logical_replication_slot() for some reason gives
> different result than CREATE_REPLICATION_SLOT: new slot's `catalog_xmin`
> is set to the smallest `catalog_xmin` among already existing slots.
> Looks like a bug.

Could you provide a script to reproduce this issue ?
That would be helpful in diagnosing the reason.

Best Regards,
Hou zj

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alexander Uvizhev 2024-12-27 13:18:27 Re: Starting logical replication at arbitrary point that's available in WAL
Previous Message Alexander Uvizhev 2024-12-27 11:39:02 Starting logical replication at arbitrary point that's available in WAL