[pgpool-general-jp: 837] Fwd: Fwd: オンラインリカバリー

ポンパー revivex36 @ gmail.com
2010年 10月 19日 (火) 11:04:03 JST


Ishii さま

馬鹿な設定でした。マスターを127.0.0.1にしていたことで、マスターをTAKEOVERした
NODEが自分と勘違いしていたようです。IPアドレスの修正で上手くリカバリーしています。
すみません。お騒がせしました。

---------- 転送メッセージ ----------
From: ポンパー <revivex36 @ gmail.com>
日付: 2010年10月18日18:07
件名: Fwd: [pgpool-general-jp: 833] Fwd: オンラインリカバリー
To: pgpool-general-jp @ sraoss.jp


お世話になります。

言われるとうりだとおもっていました。ただPGPOOLが次のマスターNODEをアサインしたときに
は、どの様にして確認すると良いですか? PGPOOLのホストのPOSTGRESを初期設定マスターDB
にしてある状況でPOSTGRESをDOWNさせると、

backend_hostname0 = '127.0.0.1'
backend_port0 = 5433
backend_weight0 = 1
backend_data_directory0 = '/var/lib/pgsql/data'
backend_hostname1 = '111.222.333.4'
backend_port1 = 5433
backend_weight1 = 2
backend_data_directory1 = '/var/lib/pgsql/data'

[root @ alt02 ~]# /usr/local/bin/pcp_node_info 10 localhost 9898 pgpadmin
wwaabb 1
113.212.74.8 5433 2 0.666667
[root @ alt02 ~]# /usr/local/bin/pcp_node_info 10 localhost 9898 pgpadmin
wwaabb 0
127.0.0.1 5433 3 0.333333

でNODE0が3でDOWNしたままです。これをPGPOOLADMINからRECOVERYを実行すると

/usr/local/bin/pcp_recovery_node 10 localhost 9898 pgpadmin waabb 0

が立ち上がり、PGPOOLのLOGが

2010-10-18 17:54:48 LOG:   pid 9951: check_postmaster_started: failed to
connect to postmaster on hostname:127.0.0.1 database:template1 user:postgres
2010-10-18 17:54:51 LOG:   pid 9951: check_postmaster_started: try to
connect to postmaster on hostname:127.0.0.1 database:template1 user:postgres
(retry 26 times)
2010-10-18 17:54:51 LOG:   pid 9951: check_postmaster_started: failed to
connect to postmaster on hostname:127.0.0.1 databas

を連続して出力しています。

また、リカバリースクリプトは各NODEから直接相手側のNODEへIP指定して行った場合、全く問題なくリカバリーを
行っています。

PGPOOLが自分のHOSTにのっかているPOSTGGRESがマスターで、それがDOWNしている事に気がつかずに
127.0.0.1へリカバリー実行を繰り返させているようです。

どこかの設定が悪いと思うのですが、ご教授お願いします。



 ---------- 転送メッセージ ----------
From: Tatsuo Ishii <ishii @ sraoss.co.jp>
日付: 2010年10月18日15:53
件名: Re: [pgpool-general-jp: 833] Fwd: オンラインリカバリー

To: pgpool-general-jp @ sraoss.jp, revivex36 @ gmail.com


> モードはREPLICATIONとLOAD BALANCEをTRUEにしてある
> 状態です。

であれば、マスタがダウンしたときには、pgpool-IIが自動的に新しいマスタを
内部的に設定してくれるので、ユーザが設定ファイルをいじるとかする必要は
ありません。

DBノードを設定ファイル順に見ていって、最初に見つかった生きているDBノー
ドが新しいマスタになるという単純なルールです。

> PGPOOLのLOGを見ていると、LOCALのPOSTGRESに
> リカバリーコマンドを送っているような幹事で、最後はFAILになっています。

リカバリスクリプトの書き方の問題だと思います。もしくは、
pcp_recovery_node の引数が間違っているか。

> PGPOOLとマスターが同じHOSTに同居することを避けるべきなのですか?

そのマシンやOSがダウンすると、pgpoolもダウンしてしまう以外には問題あり
ません。
 --
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

> オンラインリカバリーのスクリプトを見ていると、それを実行するホストがマスター
> になっているように見えます。PGPOOLがバックエンド(マスターDBを含む)の
> どれかがDOWNした場合には、もしそれがマスターならば残りのサーバーに
> マスターとしてアサインする事が出来ると思いましたが解釈が間違っている
> のでしょうか? アドバイスお願いします。
>
> ---------- 転送メッセージ ----------
> From: Tatsuo Ishii <ishii @ sraoss.co.jp>
> 日付: 2010年10月18日6:47
> 件名: Re: [pgpool-general-jp: 830] オンラインリカバリー
> To: pgpool-general-jp @ sraoss.jp, revivex36 @ gmail.com
>
>
>  > 1、マスターになるDBが停止している場合にはリカバリーはできない。
>> 2、したがって、マスターのDBに障害が発生した場合には、PGPOOLの設定を変更して
>> 別のノードをマスターにアサインしたうえでリカバリーを行う。
>>
>> こんな感じですか?
>
> どういうモードでpgpool-IIを動かしている場合の話ですか?
> --
> 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/20101018/494d7070/attachment.html 


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