[Pacemaker] Postgresql Replication

Eloy Coto Pereiro eloy.coto at gmail.com
Thu Sep 12 08:49:57 UTC 2013


Hi,

I have issues with this config, for example when master is running corosync
service use pg_ctl. But in the slave pg_ctl doesn't start and replication
doesn't work.

This is my data:


Online: [ master slave ]
OFFLINE: [ ]

Full list of resources:

ClusterIP (ocf::heartbeat:IPaddr2): Started master
KAMAILIO        (lsb:kamailio): Started master
 Master/Slave Set: msPostgresql [pgsql]
     Masters: [ master ]
     Stopped: [ pgsql:1 ]

Node Attributes:
* Node master:
    + maintenance                       : off
    + master-pgsql                      : 1000
    + pgsql-data-status                 : LATEST
    + pgsql-master-baseline             : 0000000019000080
    + pgsql-status                      : PRI
* Node slave:
    + pgsql-data-status                 : DISCONNECT
    + pgsql-status                      : HS:sync


In my crm configure show is this:
node master \
attributes maintenance="off" pgsql-data-status="LATEST"
node slave \
attributes pgsql-data-status="DISCONNECT"
primitive ClusterIP ocf:heartbeat:IPaddr2 \
params ip="10.1.1.1" cidr_netmask="24" \
op monitor interval="15s" \
op start timeout="60s" interval="0s" on-fail="stop" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop timeout="60s" interval="0s" on-fail="block"
primitive KAMAILIO lsb:kamailio \
op monitor interval="10s" \
op start interval="0" timeout="120s" \
op stop interval="0" timeout="120s" \
meta target-role="Started"
primitive pgsql ocf:heartbeat:pgsql \
params pgctl="/usr/pgsql-9.2/bin/pg_ctl" psql="/usr/pgsql-9.2/bin/psql"
pgdata="/var/lib/pgsql/9.2/data/" rep_mode="sync" node_list="master slave"
restore_command="cp /var/lib/pgsql/9.2/pg_archive/%f %p"
primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5
keepalives_count=5" master_ip="10.1.1.1" restart_on_promote="true" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="4s" on-fail="restart" \
op monitor timeout="60s" interval="3s" on-fail="restart" role="Master" \
op promote timeout="60s" interval="0s" on-fail="restart" \
op demote timeout="60s" interval="0s" on-fail="stop" \
op stop timeout="60s" interval="0s" on-fail="block" \
op notify timeout="60s" interval="0s"
ms msPostgresql pgsql \
meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1"
notify="true" target-role="Started"
location cli-prefer-KAMAILIO KAMAILIO \
rule $id="cli-prefer-rule-KAMAILIO" inf: #uname eq master
location cli-prefer-pgsql msPostgresql \
rule $id="cli-prefer-rule-pgsql" inf: #uname eq master
location cli-standby-ClusterIP ClusterIP \
rule $id="cli-standby-rule-ClusterIP" -inf: #uname eq slave
colocation colocation-1 inf: ClusterIP msPostgresql KAMAILIO
order order-1 inf: ClusterIP msPostgresql KAMAILIO
property $id="cib-bootstrap-options" \
dc-version="1.1.8-7.el6-394e906" \
cluster-infrastructure="classic openais (with plugin)" \
expected-quorum-votes="2" \
stonith-enabled="false"

Any idea why doesn't start on the second slave?

More info:

Master:

root at master ~]# netstat -putan | grep 5432 | grep LISTEN
tcp        0      0 0.0.0.0:5432                0.0.0.0:*
LISTEN      3241/postgres
tcp        0      0 :::5432                     :::*
 LISTEN      3241/postgres
[root at master ~]# ps axu | grep postgres
postgres  3241  0.0  0.0  97072  7692 ?        S    11:41   0:00
/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data -c
config_file=/var/lib/pgsql/9.2/data//postgresql.conf
postgres  3293  0.0  0.0  97072  1556 ?        Ss   11:41   0:00 postgres:
checkpointer process
postgres  3294  0.0  0.0  97072  1600 ?        Ss   11:41   0:00 postgres:
writer process
postgres  3295  0.0  0.0  97072  1516 ?        Ss   11:41   0:00 postgres:
wal writer process
postgres  3296  0.0  0.0  97920  2760 ?        Ss   11:41   0:00 postgres:
autovacuum launcher process
postgres  3297  0.0  0.0  82712  1500 ?        Ss   11:41   0:00 postgres:
archiver process   failed on 000000010000000000000001
postgres  3298  0.0  0.0  82872  1568 ?        Ss   11:41   0:00 postgres:
stats collector process
root     10901  0.0  0.0 103232   852 pts/0    S+   11:44   0:00 grep
postgres


On slave:

[root at slave ~]# ps axu | grep postgre
root      3332  0.0  0.0 103232   856 pts/0    S+   11:45   0:00 grep
postgre
[root at slave ~]# netstat -putan | grep 5432
[root at slave ~]#


If I make pg_ctl /var/lib/pgsql/9.2/data/ start work ok

Any idea?


2013/9/11 Takatoshi MATSUO <matsuo.tak at gmail.com>

> Hi Eloy
>
> Please see http://clusterlabs.org/wiki/PgSQL_Replicated_Cluster .
> In the document, it uses virtual IP to receive connection,
> so it doesn't need to change recovery.conf.
>
> Thanks,
> Takatoshi MATSUO
>
>
> 2013/9/11 Eloy Coto Pereiro <eloy.coto at gmail.com>:
> > Hi,
> >
> > In Postgresql if you use wal replication
> > <http://wiki.postgresql.org/wiki/Streaming_Replication> when the master
> > servers fails need to change the recovery.conf on the slave server.
> >
> > In this case any tool, when the master is down, execute a command and get
> > this info?
> > Is this the right tool for postgresql's replication?
> >
> > Cheers
> >
> >
> >
> >
> > _______________________________________________
> > Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> > http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> >
> > Project Home: http://www.clusterlabs.org
> > Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> > Bugs: http://bugs.clusterlabs.org
> >
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clusterlabs.org/pipermail/pacemaker/attachments/20130912/1464fcb0/attachment-0002.html>


More information about the Pacemaker mailing list