From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Zwettler Markus (OIZ) <Markus.Zwettler@zuerich.ch>
To: pgsql-admin@lists.postgresql.org <pgsql-admin@lists.postgresql.org>
Subject: Re: AW: [Extern] Re: promote a deferred standby without applying WALs
Date: Tue, 16 Jul 2024 11:21:32 +0200
Message-ID: <9720a2c9245df13906591abc4ede6cb10db32ab3.camel@cybertec.at> (raw)
In-Reply-To: <GV0P278MB00997C9B2132DA81AE97EEC48BA22@GV0P278MB0099.CHEP278.PROD.OUTLOOK.COM>
References: <GV0P278MB009978C3836E51677017D2998BA22@GV0P278MB0099.CHEP278.PROD.OUTLOOK.COM>
<32b72ef82aba2e54a1eaaab248197a47091d675c.camel@cybertec.at>
<GV0P278MB00997C9B2132DA81AE97EEC48BA22@GV0P278MB0099.CHEP278.PROD.OUTLOOK.COM>
On Tue, 2024-07-16 at 09:01 +0000, Zwettler Markus (OIZ) wrote:
> > On Tue, 2024-07-16 at 08:04 +0000, Zwettler Markus (OIZ) wrote:
> > > I have a standby database running 3 hours behind the primary (recovery_min_apply_delay = '3h').
> > >
> > > In case of a logical error on the primary I want to promote the standby database
> > > which still has correct data.
> > >
> > > The standby should not apply any more WAL in that case.
> > >
> > > It seems that this can only be done manually:
> > >
> > > 1. pg_ctl stop
> > > 2. rm -rf standby.signal
> > > 3. set primary_conninfo = ''
> > > 4. pg_ctl start
> > >
> > > Is there no single command on this?
> >
> > Perhaps this could be the single command:
> >
> > psql -c "ALTER SYSTEM SET recovery_target_time = '2024-07-16 12:00:00'" -c
> > "SELECT pg_reload_conf()"
>
> setting recovery_target_time + reload would be step 0 in that case, before stop/start. correct?
No, that would be the only step. A restart is not necessary, and PostgreSQL will
automatically promote the standby when the target time is reached (if you set
"recovery_target_action" to "promote").
Yours,
Laurenz Albe
Attachments:
[application/pgp-signature] signature.asc (869B, ../9720a2c9245df13906591abc4ede6cb10db32ab3.camel@cybertec.at/2-signature.asc)
download
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: laurenz.albe@cybertec.at, Markus.Zwettler@zuerich.ch, pgsql-admin@lists.postgresql.org
Subject: Re: AW: [Extern] Re: promote a deferred standby without applying WALs
In-Reply-To: <9720a2c9245df13906591abc4ede6cb10db32ab3.camel@cybertec.at>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox