[pgsql-jp: 41376] Re: データベース接続台数を知る方法について

小沢 和也 (Kazuya Ozawa) ozawa @ nippa.co.jp
2013年 4月 24日 (水) 13:13:24 JST


小沢です。


>  SELECT count(*) FROM pg_stat_activity WHERE usename='MyUser'
> の数が合わない問題ですが、他の接続があると判定した際に
>  SELECT * FROM pg_stat_activity WHERE usename='MyUser'
> の結果をログに残すようにして、他に何が接続しているか調査しては
> いかがでしょうか。

ログから調べてみましたところ、以下の事がわかりました。


Postgresがtemplate1にpostgresユーザで接続して何かの自動処理をしているとき、
SELECT count(*) FROM pg_stat_activity WHERE usename='MyUser'
は接続拒否される(?)
コマンド失敗したのでDisconnectをしたが、Postgresでは自動処理が
終わるまで、Disconnectもできなくて、Connectしたままになっている。
これが接続数が合わない原因となっている。つまり、他の接続とは、
切断できない自分自身である。


この自動処理は、外部からの接続(ローカルホストでない)があった後に
実行されるみたいです。これが何をやっているのかはよくわかりませんが、
完全に終了して、Disconnectが可能になるまで、12分間かかっています。
外部接続の無かった土日には行われていませんでした。

Configの設定とかで、この処理を止めることはできないのでしょうか。
(止める事によって他に影響があるかもしれませんが)

以上よろしくお願いいたします。 



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