pg_stat_activity
pg_stat_activityビューはOracleでいうv$sessionに相当すると思います。セッション一覧と記載していますが、正確には次の通りです。PostgreSQLのインスタンスではクライアントからの接続要求によりバックエンドプロセスが立ち上がってクライアントと接続がされます。このバックエンドプロセスの状態を確認するビューになります。こちらのSQLを実行する際には管理者権限保持者(通常postgres)にて実行するようにしてください。(一般ユーザでも実行はできますがこの場合全てのセッションを確認する事ができません)
セッション一覧出力SQL
select a.pid,a.datname, a.usename,a.application_name, s.ssl, client_addr ,to_char(a.backend_start, 'YY/MM/DD HH24:MI:SS') as backend_start ,to_char(a.xact_start, 'YY/MM/DD HH24:MI:SS') as xact_start ,a.state,a.wait_event,a.wait_event_type from pg_stat_activity a left outer join pg_stat_ssl s on s.pid = a.pid where 1=1 and datname is not null order by backend_start ;
項目説明
No. | 項目名 | 意味 |
1 | pid | プロセスID |
2 | datname | 接続しているDB名 |
3 | usename | 接続ユーザ名 |
4 | application_name | アプリケーション名 |
5 | ssl | SSL接続している場合はt(true) |
6 | client_addr | 接続しているクライアントIPアドレス |
7 | backend_start | クライアントがサーバに接続開始した時刻 |
8 | xact_start | 現在のトランザクションが開始した時刻。bigeinやstart transactionが発行されたタイミング; |
9 | state | セッション(バックエンドプロセス)の状態 |
10 | wait_event | セッション(バックエンドプロセス)が現在待機している場合は待機イベント名、その他はNULL。Ver.9.6以降に設けられた項目です。 |
11 | wait_event_type | 値が取りえる場合はセッション(バックエンドプロセス)が待機しているイベントの型。 さもなければNULL。Ver.9.6以降に設けられた項目です。 |
実行例
pid | datname | usename | application_name | ssl | client_addr | backend_start | xact_start | state | wait_event | wait_event_type
-------+----------+----------+--------------------------+-----+-------------+-------------------+-------------------+--------+------------+-----------------
47379 | postgres | postgres | psql | t | 192.168.3.5 | 23/07/17 02:07:11 | 23/07/17 02:11:33 | active | |
47393 | myposdb | postgres | psql | t | 192.168.3.5 | 23/07/17 02:08:21 | | idle | ClientRead | Client
47417 | myposdb | sooni | psql | f | 192.168.3.5 | 23/07/17 02:10:12 | | idle | ClientRead | Client
47433 | myposdb | postgres | pgAdmin 4 - CONN:6723353 | t | 192.168.3.5 | 23/07/17 02:11:20 | | idle | ClientRead | Client
47434 | myposdb | sooni | PostgreSQL JDBC Driver | f | 192.168.3.5 | 23/07/17 02:11:30 | | idle | ClientRead | Client
(5 行)
postgres=#