Thread: [MASSMAIL]Regarding: Replication of TRUNCATE commands is not working
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] , it's mentioned that Replication of TRUNCATE commands is supported.
Any idea how we can solve this?
Thanks
Arvind
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 forpgsql. > I have also checked the schema change using pg_dump command but the schema change also not getting detected for TRUNCATEcommand. > > 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
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:
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
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