Promote replica before being able to accept connections

Started by Martín Fernándezabout 7 years ago4 messagesgeneral
Jump to latest
#1Martín Fernández
fmartin91@gmail.com

Hello Everyone!

We have a 9.2 pg cluster and we are in the process of rebuilding a master
database in our staging environment. In order to achieve the latter goal,
we are restoring our staging database using pg_basebackup against one of
our production replicas.

pg_basebackup has completed and the staging database is configured in
hot_standby mode, recovering from the WAL archive. The database has not
reached the point were it can accept connections yet, still investing WAL
files.

What we are not sure about is, can we attempt promoting the database as a
master instance before it can accept connections ? We don´t care if the
staging database is a few days behind the production environment, that is
something acceptable in our use case, we just want to promote it as soon as
we can.

Thanks in advance!

Best,
Martín

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Martín Fernández (#1)
Re: Promote replica before being able to accept connections

Martín Fernández wrote:

We have a 9.2 pg cluster and we are in the process of rebuilding a master database in our staging environment.
In order to achieve the latter goal, we are restoring our staging database using pg_basebackup against one
of our production replicas.

pg_basebackup has completed and the staging database is configured in hot_standby mode, recovering from
the WAL archive. The database has not reached the point were it can accept connections yet, still
investing WAL files.

What we are not sure about is, can we attempt promoting the database as a master instance before it can
accept connections ? We don´t care if the staging database is a few days behind the production environment,
that is something acceptable in our use case, we just want to promote it as soon as we can.

The earliest time to which you can recover is the end of the backup.

Until recovery has reached that point, the database is not consistent
(that's the "consistent recovery state" the logs are talking about).

You cannot connect to the recovering database or promote it before you
reach that point, so you have to wait until you can connectio to the database
before you can promote it.

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com

#3Martín Fernández
fmartin91@gmail.com
In reply to: Laurenz Albe (#2)
Re: Promote replica before being able to accept connections

Laurenz,

That makes sense! 

Thanks for the quick reply

Best,

Martín

On Mon, Feb 11th, 2019 at 7:55 AM, Laurenz Albe <laurenz.albe@cybertec.at> wrote:

Show quoted text

Martín Fernández wrote:

We have a 9.2 pg cluster and we are in the process of rebuilding a

master database in our staging environment.

In order to achieve the latter goal, we are restoring our staging

database using pg_basebackup against one

of our production replicas.

pg_basebackup has completed and the staging database is configured in

hot_standby mode, recovering from

the WAL archive. The database has not reached the point were it can

accept connections yet, still

investing WAL files.

What we are not sure about is, can we attempt promoting the database as

a master instance before it can

accept connections ? We don´t care if the staging database is a few days

behind the production environment,

that is something acceptable in our use case, we just want to promote it

as soon as we can.

The earliest time to which you can recover is the end of the backup.

Until recovery has reached that point, the database is not consistent
(that's the "consistent recovery state" the logs are talking about).

You cannot connect to the recovering database or promote it before you
reach that point, so you have to wait until you can connectio to the
database
before you can promote it.

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com

#4Michael Paquier
michael@paquier.xyz
In reply to: Martín Fernández (#3)
Re: Promote replica before being able to accept connections

On Mon, Feb 11, 2019 at 06:59:27AM -0800, Martín Fernández wrote:

That makes sense!

Thanks for the quick reply

Note that PostgreSQL 9.4 has introduced a new parameter in
recovery.conf that allows recovery to finish exactly when a consistent
state has been reached:
recovery_target = 'immediate'

So that's basically what you are looking for. Now you are on 9.2, and
new features are not back-ported.
--
Michael