[Pgpool-general] Questions about online recovery

Ramon de Carvalho Valle ramon at risesecurity.org
Mon Dec 21 02:07:28 UTC 2009


Hi Tatsuo,

Thank you for the explanation.

Best regards,


On Sun, 2009-12-20 at 18:25 +0900, Tatsuo Ishii wrote:
> > Hi,
> > 
> > I've a pgpool-II replication + load balance environment with seven
> > backend servers running PostgreSQL 8 and CentOS 5.
> > 
> > The backend 0 (master node) runs both pgpool-II and PostgreSQL. I'm
> > setting up online recovery with rsync using the same script for both 1st
> > and 2nd stage commands.
> > 
> > Considering a scenario where the backend 0 (which runs pgpool-II and
> > PostgreSQL) PostgreSQL is disconnected from pgpool-II, I have the
> > following questions:
> > 
> > * How online recovery is supposed to work in this case?
> 
> 1) backend 1 is chosen as the new master node.
> 
> 2) pgpool-II connects to PostgreSQL on backend 1. This connection is
>    different from ordinary backend connection.
> 
> 3) pgpool-II requests backend 1 to execute CHECKPOINT.
> 
> 4) pgpool-II requests backend 1 to execute "SELECT pgpool_recovery"
>    which will execute online recovery stage 1 command.
> 
> 5) pgppool-II waits until all client connection disconnected.
> 
> 6) pgpool-II requests backend 1 to execute CHECKPOINT.
> 
> 7) pgpool-II requests backend 1 to execute "SELECT pgpool_recovery"
>    which will execute online recovery stage 2 command.
> 
> 8) pgpool-II requests backend 1 to execute "SELECT pgpool_remote_start"
>    which will execute "pgpool_remote_start" script, which is supposed
>    to remote start postmaster on backend 0.
> 
> 9) backend 0 connected again and recovery done.
> 
> > * Do I need to have pgpool-II installed on all backend servers? If so, I
> > will have dummy pgpool-II processes running on backend serves just to
> > have the pgpool communication manager running and be able to run
> > pcp_recovery_node from another backend?
> 
> No. What you need on all backend servers are:
> 
> 1) C functions under pgpool-II/sql/pgpool-recovery installed
>    (pgpool_recovery and pgpool_remote_start).
> 
> 2) pgpool_remote_start script installed under PostgreSQL database
>    cluster directory (/usr/local/pgsql/data).
> 
> 3) recovery scripts installed under PostgreSQL database cluster
>    directory (/usr/local/pgsql/data).
> 
> > * How 2nd stage of online recovery is supporsed to work if I am
> > recovering from a different backend than the one running pgpool-II and
> > PostgreSQL will continue accepting connections? Is cascading pgpool-II
> > connections to the backend servers a correct solution or workaround
> > here?
> 
> See above.
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://pgfoundry.org/pipermail/pgpool-general/attachments/20091221/423ea8fe/attachment.bin>


More information about the Pgpool-general mailing list