[pgpool-general-jp: 1202] Re: pgpool_setupについて
Tatsuo Ishii
ishii @ sraoss.co.jp
2013年 10月 17日 (木) 09:18:11 JST
> to:石井さま
>
> ご連絡いただきありがとうございます。
>
> 当方で”pgpool_setup”を利用して構築した環境でプライマリノード障害を発生させた
> 際のログを送付させていただきます。
PostgreSQLのログがあると何か分かるかもしれません。
1) 初期状態(node 0がprimary, node 1がstandby)
2) node 0を停止→フェイルオーバ発生、node 1昇格
の過程におけるpgpoolとPostgreSQLの両方のログを見せていただけますか?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp
> 【pgpool.log】
> 2013-10-15 13:17:57 LOG: pid 13249: Backend status file
> /home/postgres/pgpool_test/log/pgpool_status discarded
> 2013-10-15 13:17:57 LOG: pid 13249: pgpool-II successfully started.
> version 3.3.1 (tokakiboshi)
> 2013-10-15 13:17:57 ERROR: pid 13283: do_query: error message from backend:
> recovery is in progress. Exit this session.
> 2013-10-15 13:17:57 LOG: pid 13249: find_primary_node: primary node id is
> 1
> 2013-10-15 13:17:57 LOG: pid 13249: worker child 13283 exits with status
> 256
> 2013-10-15 13:17:57 LOG: pid 13290: Replication of node:0 is behind
> 16777216 bytes from the primary server (node:1)
> 2013-10-15 13:17:57 LOG: pid 13249: fork a new worker child pid 13290
> 2013-10-15 13:19:44 LOG: pid 13279: postmaster on DB node 0 was shutdown
> by administrative command
> 2013-10-15 13:19:44 LOG: pid 13279: degenerate_backend_set: 0 fail over
> request from pid 13279
> 2013-10-15 13:19:44 LOG: pid 13249: starting degeneration. shutdown host
> /tmp(11000)
> 2013-10-15 13:19:44 LOG: pid 13249: Restart all children
> 2013-10-15 13:19:44 LOG: pid 13249: execute command:
> /home/postgres/pgpool_test/etc/failover.sh 0 /tmp 11000
> /home/postgres/pgpool_test/data0 1 0 /tmp 1 11001
> /home/postgres/pgpool_test/data1
>
> real 0m0.000s
> user 0m0.000s
> sys 0m0.000s
> 2013-10-15 13:19:44 LOG: pid 13249: find_primary_node_repeatedly: waiting
> for finding a primary node
> 2013-10-15 13:19:44 LOG: pid 13249: find_primary_node: primary node id is
> 1
> 2013-10-15 13:19:44 LOG: pid 13249: failover: set new primary node: 1
> 2013-10-15 13:19:44 LOG: pid 13249: failover: set new master node: 1
> 2013-10-15 13:19:44 LOG: pid 13290: worker process received restart
> request
> 2013-10-15 13:19:44 LOG: pid 13249: failover done. shutdown host
> /tmp(11000)
> 2013-10-15 13:19:45 LOG: pid 13282: pcp child process received restart
> request
> 2013-10-15 13:19:45 LOG: pid 13249: PCP child 13282 exits with status 256
> in failover()
> 2013-10-15 13:19:45 LOG: pid 13249: fork a new PCP child pid 13522 in
> failover()
> 2013-10-15 13:19:45 LOG: pid 13249: worker child 13290 exits with status
> 256
> 2013-10-15 13:19:45 LOG: pid 13249: fork a new worker child pid 13523
>
> その時の「show pool_nodes ;」の結果です。
> 【障害発生前】
> postgres=# show pool_nodes ;
> node_id | hostname | port | status | lb_weight | role
> ---------+----------+-------+--------+-----------+---------
> 0 | /tmp | 11000 | 2 | 0.500000 | standby
> 1 | /tmp | 11001 | 2 | 0.500000 | primary
> (2 rows)
>
> 【障害発生直後】
> postgres=# show pool_nodes ;
> server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.
> The connection to the server was lost. Attempting reset: Succeeded.
> postgres=# show pool_nodes ;
> node_id | hostname | port | status | lb_weight | role
> ---------+----------+-------+--------+-----------+---------
> 0 | /tmp | 11000 | 3 | 0.500000 | standby
> 1 | /tmp | 11001 | 2 | 0.500000 | primary
> (2 rows)
>
> 【failover.sh実行後】
> postgres=# show pool_nodes ;
> node_id | hostname | port | status | lb_weight | role
> ---------+----------+-------+--------+-----------+---------
> 0 | /tmp | 11000 | 3 | 0.500000 | standby
> 1 | /tmp | 11001 | 2 | 0.500000 | primary
> (2 rows)
>
> postgres=#
>
>>とりあえず、インストーラを使ってみては如何でしょう?
> 本件に関しまして、当方も試してみましたが、OSがCentOS 5.6前提であり、
> エラーが発生し、利用できませんでした。
> (エラーの詳細は覚えておりませんが。。。)
>
> もう一点、気になっていることがあります。
> ソースコードから転用した自動起動スクリプトでserviceコマンドでpgpool-IIプロセス
> を停止しても親プロセスが残ってしまいます。
> スクリプトを読む限り間違っているようには思えないのですが。。。
>
> $ sudo /sbin/service pgpool-II stop
> pgpool-II サービスを停止中: [ OK ]
> $ ps aux | grep "pgpool"
> root 14248 0.0 0.4 55720 4616 pts/1 S 13:28 0:00
> /usr/local/pgpool-II/bin/pgpool -f /usr/local/pgpool-II/etc/pgpool.conf -n
> -D
> root 14524 0.0 0.0 55720 1004 pts/1 S 13:30 0:00 pgpool:
> PCP: wait for connection request
> postgres 14548 0.0 0.0 65424 840 pts/1 R+ 13:30 0:00 grep pgpool
>
> 以上、ご多忙のところ恐縮ですが宜しくお願いします。
>
>
> 2013年10月15日 12:00 Tatsuo Ishii <ishii @ sraoss.co.jp>:
>
>> 石井です。
>>
>> > pgpool-IIのソースコード(pgpool-II-3.3.1.tar.gz)をダウンロードし、環境を構築しておりますが、
>> > どうしてもプライマリノード障害(pg_ctl stop -m immediate)を発生させてもfollow_master.sh
>> > が実行されず行き詰ってしまいました。
>>
>> > failover.sh / follow_master.shはソースコードにバンドルされている”pgpool_setup”のものを利用しています。
>>
>> pgpool_setup に添付のものは、1台のマシン上にpgpool-IIとPostgreSQLが同居
>> していることを前提に作られているので、そうでない環境に持って行っても動
>> 作しません。
>>
>> とりあえず、インストーラを使ってみては如何でしょう?
>>
>> http://www.pgpool.net/download.php?f=installer-3.3.1.tar.gz
>>
>>
>> > ちなみに、"pgpool_setup"で構築した環境でも同様の動きになっいます。
>>
>> こちらでは動いています。pgpool-IIのログや、PostgreSQLのログを確認してみ
>> てください。
>>
>> [t-ishii @ localhost aaa]$ psql -p 11002 -c "show pool_nodes" test
>> node_id | hostname | port | status | lb_weight | role
>> ---------+----------+-------+--------+-----------+---------
>> 0 | /tmp | 11000 | 2 | 0.500000 | primary
>> 1 | /tmp | 11001 | 2 | 0.500000 | standby
>> (2 rows)
>>
>> [t-ishii @ localhost aaa]$ pg_ctl -D data0 -m f stop
>> waiting for server to shut down.... done
>> server stopped
>> [t-ishii @ localhost aaa]$ psql -p 11002 -c "show pool_nodes" test
>> node_id | hostname | port | status | lb_weight | role
>> ---------+----------+-------+--------+-----------+---------
>> 0 | /tmp | 11000 | 3 | 0.500000 | standby
>> 1 | /tmp | 11001 | 2 | 0.500000 | primary
>> (2 rows)
>>
>> [t-ishii @ localhost aaa]$ psql -p 11002 -c "show pool_nodes" test
>> node_id | hostname | port | status | lb_weight | role
>> ---------+----------+-------+--------+-----------+---------
>> 0 | /tmp | 11000 | 2 | 0.500000 | standby
>> 1 | /tmp | 11001 | 2 | 0.500000 | primary
>> (2 rows)
>> --
>> Tatsuo Ishii
>> SRA OSS, Inc. Japan
>> English: http://www.sraoss.co.jp/index_en.php
>> Japanese: http://www.sraoss.co.jp
>>
pgpool-general-jp メーリングリストの案内