Regarding: Replication of TRUNCATE commands is not working

Started by Arvind Raghuwanshiabout 2 years ago4 messagesgeneral
Jump to latest
#1Arvind Raghuwanshi
arvindcs28@gmail.com

Hi,
I have tried to run the TRUNCATE command and found out that it's not
getting replicated using logical replication for pgsql.
I have also checked the schema change using pg_dump command but the schema
change also not getting detected for TRUNCATE command.

However on pgsql logical replication doc page[1]PostgreSQL: Documentation: 16: 31.6. Restrictions <https://www.postgresql.org/docs/current/logical-replication-restrictions.html&gt; , it's mentioned
that Replication of TRUNCATE commands is supported.

[1]: PostgreSQL: Documentation: 16: 31.6. Restrictions <https://www.postgresql.org/docs/current/logical-replication-restrictions.html&gt;
<https://www.postgresql.org/docs/current/logical-replication-restrictions.html&gt;

Any idea how we can solve this?

Thanks
Arvind

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Arvind Raghuwanshi (#1)
Re: Regarding: Replication of TRUNCATE commands is not working

On Tue, 2024-04-09 at 14:50 +0530, Arvind Raghuwanshi wrote:

I have tried to run the TRUNCATE command  and found out that it's not getting replicated using logical replication for pgsql.
I have also checked the schema change using pg_dump command but the schema change also not getting detected for TRUNCATE command.

However on pgsql logical replication doc page[1] , it's mentioned that Replication of TRUNCATE commands is supported.

[1] PostgreSQL: Documentation: 16: 31.6. Restrictions

Any idea how we can solve this?

What PostgreSQL version are you using? The feature was introduced in v11.
How exactly is the publication defined? Perhaps TRUNCATE is excluded.

Yours,
Laurenz Albe

#3Arvind Raghuwanshi
arvindcs28@gmail.com
In reply to: Laurenz Albe (#2)
Re: Regarding: Replication of TRUNCATE commands is not working

Hi Laurenz,
Thanks for the response
Question: What PostgreSQL version are you using? The feature was
introduced in v11.
Answer: I am using the 16.0 Postgresql version.
db1=> SELECT version();
version
-----------------------------------------------------------------------------------------------------
PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
(1 row)

Question: How exactly is the publication defined? Perhaps TRUNCATE is
excluded.
I am not using the subscribe/publication model . but i have created a
replication slot on the source database and then i am calling below
procedure to get the details from replication slot:
select data from pg_logical_slot_peek_changes('db1_slot', NULL, NULL,
'pretty-print', '1');

In the case of TRUNCATE , the above procedure does not show up any records.
however this procedure shows up insert, update and delete events.

As you mentioned TRUNCATE is excluded, is there any way to exclude
TRUNCATE ?

Thanks
Arvind

On Tue, Apr 9, 2024 at 4:08 PM Laurenz Albe <laurenz.albe@cybertec.at>
wrote:

Show quoted text

On Tue, 2024-04-09 at 14:50 +0530, Arvind Raghuwanshi wrote:

I have tried to run the TRUNCATE command and found out that it's not

getting replicated using logical replication for pgsql.

I have also checked the schema change using pg_dump command but the

schema change also not getting detected for TRUNCATE command.

However on pgsql logical replication doc page[1] , it's mentioned

that Replication of TRUNCATE commands is supported.

[1] PostgreSQL: Documentation: 16: 31.6. Restrictions

Any idea how we can solve this?

What PostgreSQL version are you using? The feature was introduced in v11.
How exactly is the publication defined? Perhaps TRUNCATE is excluded.

Yours,
Laurenz Albe

#4Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Arvind Raghuwanshi (#3)
Re: Regarding: Replication of TRUNCATE commands is not working

On 4/9/24 05:07, Arvind Raghuwanshi wrote:

Hi Laurenz,
Thanks for the response
Question: What PostgreSQL version are you using?  The feature was
introduced in v11.
Answer: I am using the 16.0 Postgresql version.
db1=> SELECT version();
                                               version
-----------------------------------------------------------------------------------------------------
 PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
(1 row)

Question: How exactly is the publication defined?  Perhaps TRUNCATE is
excluded.
I am not using the subscribe/publication model . but i have created a

To be clear you have not done CREATE PUBLICATION on the source machine,
correct?

What is the rest of your configuration per:

https://www.postgresql.org/docs/current/logical-replication-config.html

Also what exactly is being TRUNCTEd?

replication slot on the source database and then i am calling below
procedure to get the details from replication slot:
select data from pg_logical_slot_peek_changes('db1_slot', NULL, NULL,
'pretty-print', '1');

In the case of TRUNCATE , the above procedure does not show up any
records. however this procedure shows up insert, update and delete events.

As you mentioned TRUNCATE is excluded, is there any way to exclude
TRUNCATE ?

Thanks
Arvind

On Tue, Apr 9, 2024 at 4:08 PM Laurenz Albe <laurenz.albe@cybertec.at
<mailto:laurenz.albe@cybertec.at>> wrote:

On Tue, 2024-04-09 at 14:50 +0530, Arvind Raghuwanshi wrote:

I have tried to run the TRUNCATE command  and found out that it's

not getting replicated using logical replication for pgsql.

I have also checked the schema change using pg_dump command but

the schema change also not getting detected for TRUNCATE command.

However on pgsql logical replication doc page[1] , it's mentioned

that Replication of TRUNCATE commands is supported.

[1] PostgreSQL: Documentation: 16: 31.6. Restrictions

Any idea how we can solve this?

What PostgreSQL version are you using?  The feature was introduced
in v11.
How exactly is the publication defined?  Perhaps TRUNCATE is excluded.

Yours,
Laurenz Albe

--
Adrian Klaver
adrian.klaver@aklaver.com