[pgpool-general-jp: 1653] Re: レプリケーションで同期コミットする時の動作について
Bo Peng
pengbo @ sraoss.co.jp
2020年 11月 6日 (金) 12:04:54 JST
彭です。
On Fri, 06 Nov 2020 08:49:24 +0900
Asai <office_a1971 @ yahoo.co.jp> wrote:
> はじめまして、浅井と申します。
>
> PGPOOLの設定について教えて下さい。
>
> 現在、2台のサーバーを使用して、PostgreSQLでレプリケーションし、
> PGPOOLでサーバーダウン時のフェイルオーバーする事を確認しています。
> 負荷分散とコネクションプールは未使用で、非同期コミットとしています。
> 今のところマスタダウン時もスレーブ側が昇格して更新参照できています。
>
> ※サーバーダウン時はシステム停止して完全手動で復旧します。
>
> ■各バージョン
>
> redhat6.5
> PostgreSQL9.3
> PGPOOL 3.3.5
>
> 更新参照の操作は別パソコンのpgAdminを使用
PGPOOL 3.3.5 はすでに EOL になっているので、
新しいバージョンにバージョンアップすることをお勧めします。
https://pgpool.net/mediawiki/index.php/Downloads
> ■質問内容
>
> 同期コミットなのでスレーブ側がダウンした時、待ち状態のようになりました。
> スレーブダウン時にマスタ側に対して何か設定があるのでしょうか?
>
> Recovery.confはスレーブ側だけ配置しています。
>
本事象につきましては、スレーブ側がダウンした時、
Pgpool-II のフェイルオーバスクリプトで、
PostgreSQL のパラメータを書換えるという対策があります。
以下の設定例をご参考ください。
------
PGHOME=/usr/pgsql-9.3
FAILED_NODE_ID=切り離されたノード番号
OLD_PRIMARY_NODE_ID=古いプライマリノード番号
NEW_MASTER_NODE_HOST=新しいマスターのホスト名
NEW_MASTER_NODE_PGDATA=新しいマスターのデータベースクラスタパス
if [ $FAILED_NODE_ID -ne $OLD_PRIMARY_NODE_ID ]; then
# synchronous_standby_names = '' に設定変更
ssh -T -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null postgres@$NEW_MASTER_NODE_HOST "
sed -i \"s/#*synchronous_standby_names = '\*'/synchronous_standby_names = ''/\" ${NEW_MASTER_NODE_PGDATA}/postgresql.conf
${PGHOME}/bin/pg_ctl -D ${NEW_MASTER_NODE_PGDATA} reload
"
fi
------
フェイルオーバスクリプトの設定および利用可能なパラメータについては
以下のドキュメントをご参考ください。
https://www.pgpool.net/docs/pgpool-II-3.3.5/doc/pgpool-ja.html#FAILOVER_COMMAND
>
> お手数をおかけして申し訳ありません。
>
> 宜しくお願い致します。
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
--
Bo Peng <pengbo @ sraoss.co.jp>
SRA OSS, Inc. Japan
pgpool-general-jp メーリングリストの案内