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

小沢 和也 (Kazuya Ozawa) ozawa @ nippa.co.jp
2013年 4月 25日 (木) 09:42:10 JST


MauMaさま

お世話になります。ご回答ありがとうございます。

> 8.0ではtemplate1に接続するような自動処理は思いつきません。
自動処理という言い方が良いかはわかりませんが、
こちらで発行していないSQL等々が多数出ているのが
確認できます。
以下のようなログです。

LOG:  connection received: host=127.0.0.1 port=1207
LOG:  connection authorized: user=postgres database=template1
statement: SET DateStyle=ISO;SELECT oid, pg_encoding_to_char(encoding) AS 
encoding, datlastsysoid
 FROM pg_database WHERE datname='template1'
statement: set client_encoding to 'UNICODE'
statement: SELECT version();
statement: SELECT proname, pronargs, proargtypes[0] AS arg0, proargtypes[1] 
AS arg1, proargtypes[2] AS arg2 FROM pg_proc
  WHERE proname IN ('pg_tablespace_size', 'pg_file_read', 'pg_rotate_log', 
'pg_postmaster_starttime', 'pg_terminate_backend', 'pg_reload_conf')
statement: SELECT usecreatedb, usesuper, CASE WHEN usesuper THEN 
pg_postmaster_starttime() ELSE NULL END as upsince
   FROM pg_user WHERE usename=current_user
statement: SELECT db.oid, datname, spcname, datallowconn, datconfig, datacl, 
pg_encoding_to_char(encoding) AS serverencoding, pg_get_userbyid(datdba) AS 
datowner,has_database_privilege(db.oid, 'CREATE') as cancreate
   FROM pg_database db
   LEFT OUTER JOIN pg_tablespace ta ON db.dattablespace=ta.OID
  ORDER BY datname
statement: SELECT ts.oid, spcname, spclocation, pg_get_userbyid(spcowner) as 
spcuser, spcacl FROM pg_tablespace ts  ORDER BY spcname

(長いので省略)


この処理の直前または最中でSELECT count(*) FROM pg_stat_activity WHERE 
usename='MyUser';はおかしくなり、
処理が終われば正常に戻るみたいな感じです。
処理がいつ始まるかも定かではなく、一度外部接続があった後に
行われてるようです。

> だれがどんな処理をしているか調べるために、PostgreSQLのサーバログファイルにログを追加してみてはいかがでしょう。
> postgresql.confに次のようなパラメータを設定します。
>
> log_connections = on
> log_disconnections = on
> log_statement = 'all'
> log_min_error_statement = 'debug5'

上3つはすでに設定済みです。最後の物はERRORのみに
していましたが、Debug5に変えてみました。そうしたら、
大量のログは出ますが、どれが参考になるのかが
わかりにくくなってしまいました・・・

こういった自動処理が今実行中かどうかを知るSQLがあれば
良いのですが、そんなものはありますか?
(それとて、自動処理実行中にまともに動くかわかりませんが)


小沢和也






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