Postgresql PGpool升级到主服务器和从服务器在失败时不会复制
(版本pgpool-II-pg93-3.4.0-3pgdg.rhel6.x86_64.rpm) 不久前,我在网上看到了一些关于这方面的聊天,但我还没有找到解决办法 我有2台pgpool服务器运行流式复制和负载平衡。它们连接到3台postgres服务器。2个是虚拟机,1个是物理机 我更喜欢物理机器作为主服务器。我已经使用pcp_promote_node命令进行了测试,我看到show pool_节点;显示我选择为主节点的节点,但在postgres端,命令select pg_是_in_recovery();显示服务器仍在恢复中 pcp_promote命令执行的所有操作都是分离主节点。这将阻止插入数据库 其次,如果主服务器出现故障,另一台服务器将成为主服务器,但是另一台从服务器对此一无所知,并且在我从新的主服务器恢复数据之前不会复制任何新数据 以上两个问题是否有解决办法。如果你需要更多信息,如日志等,也请告诉我Postgresql PGpool升级到主服务器和从服务器在失败时不会复制,postgresql,pgpool,Postgresql,Pgpool,(版本pgpool-II-pg93-3.4.0-3pgdg.rhel6.x86_64.rpm) 不久前,我在网上看到了一些关于这方面的聊天,但我还没有找到解决办法 我有2台pgpool服务器运行流式复制和负载平衡。它们连接到3台postgres服务器。2个是虚拟机,1个是物理机 我更喜欢物理机器作为主服务器。我已经使用pcp_promote_node命令进行了测试,我看到show pool_节点;显示我选择为主节点的节点,但在postgres端,命令select pg_是_in_recovery
谢谢好的。根据设计,pgpool实现了上述功能 您需要使用pgpool.conf文件中的follow_master_命令来解决此问题 我使用以下脚本(follow_master.sh,我将其放在/etc/pgpool II文件夹中) 我已经做了测试,它似乎工作得很好 我希望这对将来的人有所帮助 谢谢
Rob我认为这更适合dba.stackexchange.com
#!/bin/sh
################
##
## $1 = node id
## $2 = Old master node id
## $3 = node hostname
##
###############
PGPOOLIP=10.**.**.**
PGUSER=postgres
PGPASS=*************
PGHOME=/var/lib/pgsql/9.3
REMOTE_PGDATA=/var/lib/pgsql/9.3/data
if [ $1 = $2 ]; then
/usr/bin/pcp_detach_node 10 $PGPOOLIP 9898 $PGUSER $PGPASS $1
else
sleep 5
ssh -T postgres@$3 "
LD_LIBRARY_PATH=$PGHOME/lib:LD_LIBRARH_PATH;
$PGHOME/bin/pg_ctl -w -D $REMOTE_PGDATA stop"
/usr/bin/pcp_detach_node 10 $PGPOOLIP 9898 $PGUSER $PGPASS $1
/usr/bin/pcp_recovery_node 10 $PGPOOLIP 9898 $PGUSER $PGPASS $1
/usr/bin/pcp_attach_node 10 $PGPOOLIP 9898 $PGUSER $PGPASS $1
fi