Re: How to Handle Sequences in Logical Bi-Directional Replication

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: PGSQL DBA <pgsqldba(dot)1987(at)gmail(dot)com>, pgsql-admin(at)lists(dot)postgresql(dot)org
Subject: Re: How to Handle Sequences in Logical Bi-Directional Replication
Date: 2024-06-13 07:15:43
Message-ID: 186ddb32d1f5e6bc46fdd6546fcc225a4d2dc3b6.camel@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Thu, 2024-06-13 at 09:23 +0800, PGSQL DBA wrote:
> I am reaching out to seek your guidance and expertise on handling sequences
> in a bi-directional logical replication setup.
>
> I am planning to set up two PostgreSQL-16 database servers with logical bi-directional
> replication, using the `origin=none` configuration. In this setup, my application will
> be connecting to either of the database servers for DML operations.

You will have to resolve conflicts manually.

> Given this scenario, I am looking for the best practices to handle sequence values to
> ensure consistency and avoid conflicts. Specifically, I would like to understand:
>
> 1. How to configure sequences to avoid duplicate values in both database servers.

On server 1:

CREATE TABLE tab (
id bigint BENERATED ALWAYS AS IDENTITY (START 1 INCREMENT 2)
PRIMARY KEY,
...
);

On server 2:

CREATE TABLE tab (
id bigint BENERATED ALWAYS AS IDENTITY (START 2 INCREMENT 2)
PRIMARY KEY,
...
);

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Ron Johnson 2024-06-13 12:52:18 Get PG primary version without substring manipulation?
Previous Message Muhammad Ikram 2024-06-13 05:34:35 Re: How to Handle Sequences in Logical Bi-Directional Replication