[pgpool-general-jp: 1204] Re: pgpool_setupについて

Takanori Urata takanori.urata @ thot.co.jp
2013年 10月 21日 (月) 13:35:24 JST


to:石井さま

お世話になります。

ご連絡いただきありがとうございます。
また、返信が遅くなりまして大変申し訳ございません。

pgpool_setupで構築した環境でプライマリの障害テストを行った際のログを
送付させていただきます。
※ログが長くなるため添付させていただきます。




2013年10月17日 9:18 Tatsuo Ishii <ishii @ sraoss.co.jp>:

> > 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
> >>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20131021/7ff7ea7f/attachment-0001.html>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: pgpool_setup_test_log
型:         application/octet-stream
サイズ:     15785 バイト
説明:       無し
URL:        <http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20131021/7ff7ea7f/attachment-0001.obj>


pgpool-general-jp メーリングリストの案内