2016年9月13日星期二

PostgreSQL 管理进程

  1. 查看当前服务器的连接情况
    SELECT * FROM pg_stat_activity;
    
    返回信息包括如下:
    • datid
    • datname 数据库名
    • procpid 进程 ID
    • sess_id 会话 ID
    • usesysid
    • usename 提交 SQL 的用户名
    • current_query 当前 SQL 执行
    • waiting 当前是否等待
    • query_start SQL 提交时间
    • backend_start 后台执行时间
    • client_add SQL 提交的服务器
    • application_name SQL 提交的终端
    • xact_start SQL 执行开始时间
    • waiting_reason 等待原因,与 waiting 字段结合使用
    该查询结果也可在 PgAdmin 的 ”服务器状态“ 里查看到。
  2. 杀死 IDLE 进程
    SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE current_query=''
  3. 当 pg 版本 >= 8.4 时,可用以上 SQL Kill 所有 IDLE 进程, pg_terminate_backend 是 pg 的内部方法。另外还有 pg_cancel_backend(procpid) 取消指定进程的查询操作,但它不能释放数据库连接。

没有评论:

发表评论