VirtualBox で2台のマシンを起動し、両方に PostgreSQL を入れて
ストリーミングレプリケーションによる DB レプリケーションを行っています。
CentOS 6.5
PostgreSQL 9.3
pgpool-II 3.4.2
マシン構成(2台)
srv1 : マスタ, pgpool-II + PostgreSQL
srv2 : スレーブ, PostgreSQL
マスタのDBをダウンさせてフェールオーバが実行されるところまできたのですが、
no primary node found
となり、スレーブ側がマスタに昇格してくれません。
フェールオーバのスクリプトは以下の通りです。
------------------------------failover_stream.sh--------------------------------------
#! /bin/bash
Failover command for streming replication.
This script assumes that DB node 0 is primary, and 1 is standby.
If standby goes down, does nothing(do pgsql9 stop only). If primary goes down, create a
trigger file so that standby take over primary node.
Arguments: $1: failed node id. $2: new master hostname. $3: path to
trigger file.
failed_node=$1
new_master=$2
trigger_file=$3
Do nothing if standby goes down.
if [ $failed_node = 1 ]; then
exit 0;
fi
Create trigger file.
su -l postgres -c "/usr/bin/ssh -T $new_master /bin/touch $trigger_file"
#ssh -T $new_master /bin/touch $trigger_file
exit 0;
srv2 の方に trigger_file は作成されているのでこのスクリプトは正常に動作しており、また srv2 が新マスタであると認識してくれていると思うのですが・・・。
フェールオーバ処理付近の pgpool.log は以下の通りです。
2015-07-01 16:43:40: pid 5259: LOG: execute command: /usr/local/bin/failover_stream.sh 0 srv2 /tmp/trigger_file0
2015-07-01 16:43:40: pid 5259: LOCATION: pgpool_main.c:2467
2015-07-01 16:43:41: pid 5259: LOG: find_primary_node_repeatedly: waiting for finding a primary node
2015-07-01 16:43:41: pid 5259: LOCATION: pgpool_main.c:2627
2015-07-01 16:43:41: pid 5259: LOG: find_primary_node: checking backend no 0
2015-07-01 16:43:41: pid 5259: LOCATION: pgpool_main.c:2569
2015-07-01 16:43:41: pid 5259: LOG: find_primary_node: checking backend no 1
2015-07-01 16:43:41: pid 5259: LOCATION: pgpool_main.c:2569
2015-07-01 16:43:41: pid 5259: DEBUG: SSL is requested but SSL support is not available
2015-07-01 16:43:41: pid 5259: LOCATION: pool_ssl.c:333
2015-07-01 16:43:41: pid 5259: DEBUG: authenticate kind = 0
2015-07-01 16:43:41: pid 5259: LOCATION: child.c:1394
2015-07-01 16:43:41: pid 5259: DEBUG: authenticate backend: key data received
2015-07-01 16:43:41: pid 5259: LOCATION: child.c:1484
2015-07-01 16:43:41: pid 5259: DEBUG: authenticate backend: transaction state: I
2015-07-01 16:43:41: pid 5259: LOCATION: child.c:1518
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: extended:0 query:"SELECT pg_is_in_recovery()"
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2318
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: kind: 'T'
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2458
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: received ROW DESCRIPTION ('T')
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2569
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: row description: num_fileds: 1
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2591
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: kind: 'D'
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2458
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: received DATA ROW ('D')
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2646
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: kind: 'C'
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2458
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: received COMMAND COMPLETE ('C')
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2528
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: kind: 'Z'
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2458
2015-07-01 16:43:41: pid 5259: DEBUG: do_query: received READY FOR QUERY ('Z')
2015-07-01 16:43:41: pid 5259: LOCATION: pool_process_query.c:2521
2015-07-01 16:43:41: pid 5259: DEBUG: find_primary_node: 1 node is standby
2015-07-01 16:43:41: pid 5259: LOCATION: pgpool_main.c:2586
2015-07-01 16:43:41: pid 5259: DEBUG: find_primary_node: no primary node found
2015-07-01 16:43:41: pid 5259: LOCATION: pgpool_main.c:2594
2015-07-01 16:43:41: pid 5259: DEBUG: reaper handler
2015-07-01 16:43:41: pid 5259: LOCATION: pgpool_main.c:2045
2015-07-01 16:43:41: pid 5259: DEBUG: reaper handler: exited due to switching
2015-07-01 16:43:41: pid 5259: LOCATION: pgpool_main.c:2057
2015-07-01 16:43:42: pid 5259: LOG: find_primary_node: checking backend no 0
2015-07-01 16:43:42: pid 5259: LOCATION: pgpool_main.c:2569
2015-07-01 16:43:42: pid 5259: LOG: find_primary_node: checking backend no 1
srv1 と srv2 の pg_hda.conf は全通しするようにしています。
local all all trust
host all all 0.0.0.0/0 trust
どのような些細なことでも結構です、何かお気づきのことがありましたらアドバイスいただけないでしょうか。
どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/02 01:15
2015/07/02 01:29
2015/07/02 06:22