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

ポンパー revivex36 @ gmail.com
2010年 9月 6日 (月) 15:12:09 JST


PGPOOL-IIを使わせていただいています。有り難うございます。

オンラインリカバリーの件で質問がありメールさせていただきます。

現在立ち上げているものは、PGPOOL-IIの最新バージョンと3台のPOSTGRESサーバーで構成しています。
SYSTEMはCENTOSです。 マニュアルにしたがってONLINEリカバリーのスクリプトを使いましたが、以下の不具合があり
他の方法を考えないとなりません。

(問題点)
1、ARCHIVE_LOGを各POSTGRESサーバーで有効にしていると通常のLOGが肥大化して実際に
リカバリーを行う時点でファイル転送に時間がかかりすぎる事。
(各バックエンドのPOSTGRESのCONFファイルにARCHIVE_COMMANDを有効にしています。)

2、リカバリー時にマスターDBについてAUTO VACUUMを停止する必要があるようですが上手く出来る方法が
見つかっていない。

3、ユーザーから四六時中アクセスがありリカバリー発生時にはPGPOOLを強制終了する必要がある。


そこで、リカバリーが必要になった時点で、

1、強制的にPGPOOLを終了する。
2、続いてマスターのDBを終了させる。
3、マスターからリカバリーサーバーへデータ部分を転送する。
4、リカバリー及びマスターのPOSTGRESを立ち上げる。
5、PGPOOLを起動させる。

大まかな手順はこの様に考えています。これをスクリプトにすると、


#! /bin/sh
if [ $# -ne 3 ]
then
    echo "pgpool_recovery datadir remote_host remote_datadir"
    exit 1
fi
# Execute commands
PGCTL=/usr/local/pgsql/bin/pg_ctl
PGPOOL=/usr/local/bin/pgpool
PGPOOL_HOST="192.168.0.11"
MASTER_HOST="192.168.0.11"
MASTER_BASEDIR=$1
RECOVERY_HOST=$2
RECOVERY_BASEDIR=$3
#
ssh -T $PGPOOL_HOST $PGPOOL -m f stop >/dev/null 1> /dev/null < /dev/null &
ssh -T $RECOVERY_HOST $PGCTL stop -m fast >/dev/null 1> /dev/null <
/dev/null &
ssh -T $MASTER_HOST $PGCTL stop -m fast >/dev/null 1> /dev/null < /dev/null
&

#
ssh -T $RECOVERY_HOST rm -rf $RECOVERY_BASEDIR.bk
ssh -T $RECOVERY_HOST mv -f  $RECOVERY_BASEDIR{,.bk}
#
rsync -aurz --delete --exclude='*.conf' --exclude='*.sh' -e ssh
$MASTER_BASEDIR/ $RECOVERY_HOST:$RECOVERY_BASEDIR/ &
#
ssh -T $RECOVERY_HOST rm -f  $RECOVERY_BASEDIR/postmaster.pid
#
ssh -T $RECOVERY_HOST $PGCTL -w -D $RECOVERY_BASEDIR start 2>/dev/null
1>/dev/null < /dev/null &
#
ssh -T $MASTER_HOST $PGCTL -w -D $MASTER_BASEDIR start 2>/dev/null
1>/dev/null < /dev/null &

#
ssh -T $RECOVERY_HOST $PGPOOL -f /usr/local/etc/pgpool.conf -F
/usr/local/etc/pcp.conf -n start 2>&1 | /usr/sbin/rotatelogs /tmp/pgpool.log
86400 &
wait
単純に考えましたが、もし、PGPOOLがリカバリー時に1stのコマンドをマスターに実行させたときに、マスターがPGPOOLを停止させる事になりますが
ここで問題になることはあるでしょうか? もしくは、根本的に考えからが間違っていますか?

すみません、ご教授お願いします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20100905/765dec8e/attachment.html 


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