Thread: Logical decoding

Logical decoding

From
Jethish Jethish
Date:
Hi everyone,

Is there is any option to perform logical decoding on an active replication slot.
I'm trying to decode a replication slot but it throughs an error as below.

ERROR: replication slot "my_sub" is active for PID 2525720

Re: Logical decoding

From
Tomas Vondra
Date:
On 2/20/25 06:04, Jethish Jethish wrote:
> Hi everyone,
> 
> Is there is any option to perform logical decoding on an active
> replication slot.
> I'm trying to decode a replication slot but it throughs an error as below.
> 
> ERROR: replication slot "my_sub" is active for PID 2525720

No, not really. The whole point of this error is to prevent exactly
this, pretty much - to only allow a single process doing logical
decoding on a slot.

What are you trying to solve / achieve? Why do you need (or think you
need) logical decoding on an active slot?


regards

-- 
Tomas Vondra




Re: Logical decoding

From
Justin
Date:

On Thu, Feb 20, 2025 at 12:04 AM Jethish Jethish <jethish777@gmail.com> wrote:
Hi everyone,

Is there is any option to perform logical decoding on an active replication slot.
I'm trying to decode a replication slot but it throughs an error as below.

ERROR: replication slot "my_sub" is active for PID 2525720


Hi Jethish,

You can by copying the LR slot 

SELECT  pg_copy_logical_replication_slot ( '<slot_name>', --source slot
'peek', --destination slot name
true,  --lets make a temporary slot, so we don't have clean up after ourselves 
'test_decoding' --plugin name can be any LR plugin this one let's us see what is going on
)

Then peek at what the slot is doing

SELECT * FROM pg_logical_slot_peek_changes('peek' , --name of the slot
NULL, --lsn number to start from  can jump ahead,
1 ); --how many transaction to get back from the query this will return multiple rows for each row affect by the transaction. 

select pg_drop_replication_slot(<slot_name>)  --how we drop the slot