Hi,
I know you don’t want to query, but you could create your own pseudo configuration file with a query and a psql \if statement in a psql script like this:
select NOT pg_is_in_recovery() AS is_primary \gset
\if :is_primary
\! touch /tmp/primary_at_’date +%Y%m%d%H%M%S’
\endif
\q
Run the above on each database in your cluster with a cron job/database scheduler job at the appropriate interval for your needs. This would provide a file in / tmp that identifies the primary database with a timestamp.
Hope this helps.
Regards,
I know you don’t want to query, but you could create your own pseudo configuration file with a query and a psql \if statement in a psql script like this:
select NOT pg_is_in_recovery() AS is_primary \gset
\if :is_primary
\! touch /tmp/primary_at_’date +%Y%m%d%H%M%S’
\endif
\q
Run the above on each database in your cluster with a cron job/database scheduler job at the appropriate interval for your needs. This would provide a file in / tmp that identifies the primary database with a timestamp.
Hope this helps.
Regards,
Craig Jackson
On Aug 18, 2023 at 7:07 AM -0400, lejeczek <peljasz@xxxxxxxxxxx>, wrote:
On 18/08/2023 11:34, Emile Amewoto wrote:Hi Lejeczek,Hi, thanks for the tip.What are you using to control your cluster?If you are using patroni, you can use regex to grep the Leader or if you are not using any cluster manager you can do:SELECT Count(pid))FROM pg_stat_activity WHERE wait_event IS NOT NULL AND backend_type = ‘walsender'The master will always have walsender process and the standby walreiverRegards,Emile
On 18 Aug 2023, at 11:07, lejeczek <peljasz@xxxxxxxxxxx> wrote:
Hi guys.
Is it possible to configure pgSQL to announce it's being a master and not querying it?
I was hoping for a file whose existence or content would confirm that and would be generated/created by pqSQL itself - am I too naive?
many thanks, L.
I'm looking at what I wrote - perhaps I was bit vague - ... it's being a master by not querying it & via means of config/uration instead - is what wanted to ask.