[pgcluster: 799] Re: pglb の仕様が疑問があります
Atsushi Mitani
a.mitani @ sra-europe.com
2005年 8月 15日 (月) 19:12:18 JST
三谷@オランダです。
>pglb は pgreplicate からクラスタサーバの生死を伝えられて、
>ステータスが error か start use かを知り、
pglbがクラスタDBの異常を検知するのはレプリケーションサーバからの通知ではなく、自分で接続に行って検知します。
>何が原因で通知が行われないのかは分かっていないのですが、
>そもそも pglb が error ステータスを解除する為には通知を
>待つしかないのであれば問題だと思います。
これは、クラスタDB間のデータ同期が取れたことを確認した後でないと、クライアントからの接続を許可していないからです。
もしクラスタDBをリカバリーモードなしで後から起動した場合、データが他のクラスタDBと異なっていることが多いと思います。もし、そのままpglbがクライアントからの接続を許可してしまった場合、クラスタDB間でデータの不整合が発生します。
ですので、データ不整合の状態を防止するために、一度エラーになったクラスタDBはレプリケーションサーバから(データの同期が取れたよ、という)通知を貰うまで、外部からのアクセスを許可しないようになっているのです。
お分かり頂けましたでしょうか。
なお、メンテナンス等で全てのクラスタDBを停止した場合、システムとしてDBは1つも動いていませんので、pglbやレプリケーションサーバだけが動いていても意味を成しません。随って、この場合は「システム全部を手順とおりに再起動する」という運用になるのが普通だと思います。
pgcluster メーリングリストの案内