[pgcluster: 945] Re: ときどきクエリが失敗する現象について

takay takay.ml @ gmail.com
2006年 11月 22日 (水) 09:31:27 JST


高柳です。

今朝、同現象が発生し、現象が回復しなかったためいろいろ調べて
状況把握してみました。わかったことは、次の通りです。

まず、前置きとして構成を書いておきます。

WebServerA---LoadBalancerA----ClusterA
                          \/
                          /\
WebServerB---LoadBalancerB----ClusterB

Webサーバは2台構成で、DNSラウンドロビンによって振り分けています。
今朝、現象が出たのはBのサーバでした。
(今まで数分後に回復していたのは、もしかしたら、DNSのTTLを300秒
に設定していたため、別のWebサーバに切り替わったからかもしれません。)

問題となっていたテーブル(仮にTableAとします)はServerB上で
psqlからselectすると「ERROR: relation 'TableA' does not exist」
と出て、ServerAから同様にクエリーを投げたところ正常でした。

で、原因なのですが、ServerB上のUserAでpsqlで「\d」してみたところ、
TableAは存在してませんでした。
実はTableAは所有者が「UserB」でスキーマが「public」、
参照する人は「UserA」という関係なのですが、UserAからは
見えていない状態でした。
このとき、ServerA上のUserAからは正常に見えており、また、
ServerB上のUserBからは「public」ではなく「SchemaB(UserBのスキーマ)」
となっていました。

なぜ「public」が「SchemaB」になってしまったのか不明ですが、
Webサーバ、pgcluster(lb/cluster/replication)を再起動したら直りました。


---
takay.ml @ gmail.com





pgcluster メーリングリストの案内