PostgreSQL 8.4でアクティブな接続と「現在のアクティビティ」を確認する方法


99

DB接続が無期限に開いたままになり、DBサーバーで問題が発生する問題を調査しています。PostgreSQLサーバーへの現在開いている接続、特に特定のデータベースを使用している接続を確認するにはどうすればよいですか?理想的には、そこで実行されているコマンドも確認したいと思います。基本的に、MSSQLの「現在のアクティビティ」ビューに相当するものを探しています。


PostgreSQL 9.0からは、問題の原因となっているアプリケーションの名前も表示されます。これは今後のチェックに役立つかもしれません。
postgresql007

回答:


137

OK、他の誰かから手に入れた。このクエリはトリックを実行する必要があります。

select *
from pg_stat_activity
where datname = 'mydatabasename';

23

pg-topも参照してください。これは、postgresアクティビティを示すことを除いてtopのように動作します。

  • pg-topをインストールします(Debianでは、パッケージは「ptop」と呼ばれます)。
  • postgresユーザーになります(例sudo su postgres
  • 走る pg_top

Windows実行可能ファイルを見つけるのは難しい。あなたは(ほとんど)Windowsサーバー上に完全なGCCスイートまたはMingwを持っていません(私の選択ではなく、私を責めないでください)。
オリゴフレン

@oligofren WindowsでPostgresqlを実行するのは、それ以外の理由がなければ、非常に多くのユーティリティとツールがLinux用に書かれているのであれば、ちょっとした冒険です。
ウェインコンラッド

13

この記事から引用した参照。

SELECT 
    pid
    ,datname
    ,usename
    ,application_name
    ,client_hostname
    ,client_port
    ,backend_start
    ,query_start
    ,query  
FROM pg_stat_activity
WHERE state <> 'idle'
AND pid<>pg_backend_pid();

queryそして、pid命名したcurrent_queryprocpid、とstateでは使用できませんpg_stat_activityPostgreSQLの9.2より前。
-user369450


1

参考までにUbuntu 18.04で監視する2つの方法

使用するものpg_top

$ sudo apt-get install ptop
$ pg_top # similar to top as others mentioned

2つの使用pgAdmin4

$ sudo apt-get install pgadmin4 pgadmin4-apache2
# type in password and use default url
$ pgadmin4

ダッシュボードで、次のように合計/アクティブを確認します

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.