Open Pluggi opened 6 months ago
Hi @Pluggi! Thanks for reaching out.
By default, PGO leverages pgBackRest for the management of WAL archives (meaning pgBackRest ensures WAL is properly archived and available to the various replicas within the PostgresCluster - while also providing a ton of great features to ensure WAL is effectively and efficiently archived & available). So because of this, PGO simply sets use_slots
to false
by default.
That being said, PGO does allow this setting to be turned on. In fact, certain functionality provided by the HA system (Patroni) requires use_slots
to be enabled:
https://patroni.readthedocs.io/en/latest/dynamic_configuration.html#dynamic-configuration-settings
slots: define permanent replication slots. ... Enabling permanent replication slots requires postgresql.use_slots to be set to true.
So use of the setting really depends on your use. And I'll note that if you are seeing any issues with WAL that has you reaching this setting, I would definitely be curious to hear any further details/specifics.
Hope this helps!
Hello !
It's not clear to me what pgbackrest has to do with patroni using replication slots? I thought the writing of WAL files to disk was enabled using archive_mode
.
My use case is, we have two PGO clusters A and B. I want to replicate data from table T in cluster A to cluster B.
The most simple way to do that seemed to be to just use replication slots.
However, I think if I just deploy replication slots using pg_create_physical_replication_slot()
on the leader of cluster A and then a failover happens on cluster A, the replication slot will not be automatically recreated on the new leader? So I wanted to use Patroni for that.
Hi @Pluggi. To follow up on this issue, based on your description above, have you considered using one of PGO's built in standby cluster options? There are examples in the documentation that should be useful if you decide to try this out. Hope this helps!
Hello,
I am looking to replicate a table from one PGO cluster to another. For that, I wanted to use Postgres replication slots and Patroni's dynamic configuration use_slots to ensure it is created on the leader and its replicas and continue working in case of a failover.
However I found this piece of code which forces it to false : https://github.com/CrunchyData/postgres-operator/blob/master/internal/patroni/config.go#L207
What was the rationale behind this setting? What could go wrong if I set it to true ? Can it change the behavior of the replication inside a PGO cluster?