Hello -

First of all thanks for doing this. It's definitely a neat option to
have. Unfortunately I haven't yet worked with ProstgreSQL 9.0. Could
you please elaborate little bit more on how it works? What happens if
master dies? Who is responsible for creating/deleting recovery.conf
file?

Also please be more careful with quoting variables in your if statements.



On Mon, Feb 7, 2011 at 5:19 AM, Takatoshi MATSUO <matsuo....@gmail.com> wrote:
> Hello
>
> I wrote a patch for pgsql RA to manage PostgreSQL 9.0 streaming
> replication(PGSR)
> which is new feature in Postgres 9.0.
>
> I add new parameters, "rep_mode", "trigger_file" and "tmpdir".
>
> "rep_mode" means replication mode
> Default is "none" which do the same thing as before.
> You have to set "async" to use PGSR.
>
> "trigger_file" must be set same parameter of recovery.conf.
> This file is created to promote hot standby to primary.
> Default is /var/lib/pgsql/PGSQL.5432.trigger.
>
> "tmpdir" is temporary directory used for trigger_file and flag files.
> Default is /var/lib/pgsql.
>
>
>
> * Details
>
> PGSR's transition differs from Pacemaker's one as follows.
>
> ******* transition of Pacemaker ******************************
>
>     start         promote
>   ---------->  ------------>
> Stop        Slave          Master
>   <---------   <------------
>     stop          demote
>
> **************************************************************
>
> ******* transition of PGSR ***********************************
>
>     pg_ctl start
>   ------------------------------------------>
>     pg_ctl start     create trigger_file
>   --------------->  ------------------------>
> Stop           Hot standby              Primary
>   <----------------
>     pg_ctl stop
>   <------------------------------------------
>     pg_ctl stop
>
>  Note
>     PostgreSQL developer says that it's not normal operation
>     to start primary through hot standby initially.
> ***************************************************************
>
> Therefore this patch has 4 states as follows.
>
> STATE1   | STATE2   | STATE3      | STATE4
>  Stop    | Slave    | Slave       | Master         <- Pacemaker's state
>  Stop    | Stop     | HotStandby  | Primary        <- PGSR's state
>
>
>
> The STATE2 is steppingstone to transit to the STATE4
> so primary's initial start transits as follows.
>
>   STATE1 ---> STATE2 ---> STATE4
>         start       promote
>
> In the STATE2, PostgreSQL is stopping, so resource agent creates a flag
> file($REPRESS_MONITOR) to cheat monitor operation, and waites for promote op.
>
>
> * Method of starting
>
> You have to start only primary server's pacemaker with primary configuration
> and waits for promote op (STATE4).
> After that, you backup data from primary server and restore it
> to hot standby server and starts hot standby server's pacemaker with
> hot standby configuration.
>
>
> * About repressing start flag file
>
> Hot standby server must be started with new restored data.
> But if restored data is old, hot standby server fails to replication,
> but resource
> agent can't notice it.
> At this time primary server is broken, hot standby server is promoted with 
> very
> old data, so I bring in repressing start flag file($REPRESS_START)
> to repress restarting PostgreSQL automatically with old data.
> Therefore you have to backup and restore new data and remove this flag
> before starting PostgreSQL if it exists.
>
>
> How do you think these implementation ?
> Any comment ?
>
> Regards,
> Takatoshi MATSUO
> Linux-HA Japan
>
> _______________________________________________________
> Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/
>
>



-- 
Serge Dubrouski.
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to