[pgpool-general: 3692] Re: Follow the master script
Tatsuo Ishii
ishii at postgresql.org
Fri May 8 10:25:11 JST 2015
> Hi,
>
> I'm setting up 3 database nodes.
>
> Is there any follow the master script that I can use for when a failover happens?
Included is a follow master script generated by pgpool_setup. It is
only usable for everything-on-the-same-host case, but you could have
an idea how to extend it to for the real world case.
Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
-------------- next part --------------
#! /bin/sh
# Execute command by failover.
# special values: %d = node id
# %h = host name
# %p = port number
# %D = database cluster path
# %m = new master node id
# %M = old master node id
# %H = new master node host name
# %P = old primary node id
# %R = new master database cluster path
# %r = new master port number
# %% = '%' character
failed_node_id=$1
failed_host_name=$2
failed_port=$3
failed_db_cluster=$4
new_master_id=$5
old_master_id=$6
new_master_host_name=$7
old_primary_node_id=$8
new_master_port_number=$9
new_master_db_cluster=${10}
mydir=/home/t-ishii/work/pgpool-II/current/aaa
log=$mydir/log/failover.log
pg_ctl=/usr/local/pgsql/bin/pg_ctl
cluster0=$mydir/data0
cluster1=$mydir/data1
cluster2=$mydir/data2
PCP_PORT=11001
pcp_super_user=t-ishii
date >> $log
echo "failed_node_id $failed_node_id failed_host_name $failed_host_name failed_port $failed_port failed_db_cluster $failed_db_cluster new_master_id $new_master_id old_master_id $old_master_id new_master_host_name $new_master_host_name old_primary_node_id $old_primary_node_id new_master_port_number $new_master_port_number new_master_db_cluster $new_master_db_cluster" >> $log
# Stop standby node if it's running
if $pg_ctl -D $failed_db_cluster status|grep "is running" >/dev/null 2>&1
then
$pg_ctl -w -m f -D $failed_db_cluster stop >> $log 2>&1
sleep 10
# recovery the node
pcp_recovery_node 1 localhost $PCP_PORT $pcp_super_user $pcp_super_user $failed_node_id >> $log 2>&1
else
echo "$failed_db_cluster is not running. skipping follow master command." >> $log
fi
More information about the pgpool-general
mailing list