postgresql进程查看与管理

1、查看数据库当前的进程 汇总

SELECT
	mmm.procpid 进程_pid,
	mmm.START 开始时间,
	mmm.lap 消耗时长,
	fff.datname 数据库名,
	fff.usename 用户名,
	fff.wait_event_type,
	fff.wait_event,
	fff.state,
	mmm.current_query 
FROM
	(
	SELECT
		procpid,
		START,
		now( ) - START AS lap,
		current_query 
	FROM
		(
		SELECT
			backendid,
			pg_stat_get_backend_pid ( S.backendid ) AS procpid,
			pg_stat_get_backend_activity_start ( S.backendid ) AS START,
			pg_stat_get_backend_activity ( S.backendid ) AS current_query 
		FROM
			( SELECT pg_stat_get_backend_idset ( ) AS backendid ) AS S 
		) AS S 
	WHERE
		current_query <> '<IDLE>' 
	) mmm
	INNER JOIN ( SELECT datname, pid, leader_pid, usename, application_name, client_addr, query_start, wait_event_type, wait_event, STATE, query FROM pg_stat_activity ) fff ON mmm.procpid = fff.pid 
ORDER BY
	mmm.lap DESC;
  • wait_event_type: 这字段表示等待事件的类型
    • LWLock:后端正在等待轻量级锁。每个这样的锁都保护共享内存中的特定数据结构。 wait_event将包含一个标识轻量级锁用途的名称。(一些锁有特定的名称;其他锁属于一组锁,每个锁都有类似的用途。)
    • Lock:后端正在等待重量级锁。重量级锁,也称为锁管理器锁或简称锁,主要保护 SQL 可见的对象,例如表。但是,它们也用于确保某些内部操作(例如关系扩展)的互斥。 wait_event将识别等待的锁类型。
    • BufferPin:在没有其他进程可以检查该缓冲区的期间,服务器进程正在等待访问数据缓冲区。如果另一个进程持有一个打开的游标,该游标最后从相关缓冲区读取数据,则缓冲区 pin 等待可能会延长。
    • Activity: 服务器进程空闲。这由等待其主处理循环中的活动的系统进程使用。wait_event将确定具体的等待点。
    • Extension:服务器进程正在等待扩展模块中的活动。此类别对于跟踪自定义等待点的模块很有用。
    • Client:服务器进程正在等待来自用户应用程序的套接字上的某些活动,并且服务器期望发生一些独立于其内部进程的事情。wait_event将确定具体的等待点。
    • IPC:服务器进程正在等待服务器中另一个进程的某些活动。wait_event将确定具体的等待点。
    • Timeout:服务器进程正在等待超时到期。wait_event将确定具体的等待点。
    • IO:服务器进程正在等待 IO 完成。wait_event将确定具体的等待点。
  • wait_event:
  • state:状态
    • active:后端正在执行查询。
    • idle:后端正在等待新的客户端命令。
    • idle in transaction:后端处于事务中,但当前未执行查询。
    • idle in transaction (aborted):此状态类似于idle in transaction,只是事务中的一条语句导致 了错误。
    • fastpath function call:后端正在执行快速路径功能。
    • disabled:如果在此后端禁用track_activities ,则会报告此状态。

2、查看数据库当前的进程,看一下有无正在执行的慢SQL记录线程。

SELECT 
    procpid, 
    start, 
    now() - start AS lap, 
    current_query 
FROM 
    (SELECT 
        backendid, 
        pg_stat_get_backend_pid(S.backendid) AS procpid, 
        pg_stat_get_backend_activity_start(S.backendid) AS start, 
       pg_stat_get_backend_activity(S.backendid) AS current_query 
    FROM 
        (SELECT pg_stat_get_backend_idset() AS backendid) AS S 
    ) AS S 
WHERE 
   current_query <> '<IDLE>' 
ORDER BY 
   lap DESC;
  • procpid:进程id 如果不确认进程ID,将上面的条件去掉,可以逐条分析
  • start:进程开始时间
  • lap:消耗时间
  • current_query:执行中的sql

3、查找表锁定的进程

SELECT A
	.locktype,
	A.DATABASE,
	A.pid,
	A.MODE,
	A.relation,
	b.relname 
FROM
	pg_locks
	A JOIN pg_class b ON A.relation = b.OID 
WHERE
	UPPER ( b.relname ) = 'TABLE_NAME';

4、查看具体表的sql执行情况 查看数据库进程

--查询具体表的执行情况
SELECT * FROM pg_stat_activity where query ~ '表名';

-- 包含本窗口的所有数据库连接数
SELECT count(*) FROM pg_stat_activity;

-- 包含本窗口的所有数据库连接情况
SELECT * FROM pg_stat_activity;

5、杀事务(kill有两种方式)

-- 这种方式只能kill select查询,对update、delete 及DML不生效)
SELECT pg_cancel_backend( PID);

-- 这种可以kill掉各种操作(select、update、delete、drop等)操作
SELECT pg_terminate_backend(PID);
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL中文学习手册 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (数据表 数据表 ) 4 一、表的定义: 一、表的定义: 一、表的定义: . 4 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (模式 Schema) Schema) .9 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (表的继承和分区 表的继承和分区 表的继承和分区 表的继承和分区 ) 10 一、表的继承: 一、表的继承: 一、表的继承: .10 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (常用数据类型 常用数据类型 常用数据类型 ) 16 一、数值类型: 一、数值类型: 一、数值类型: .16 六、数组: 六、数组: .22 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (函数和操作符 函数和操作符 函数和操作符 <一>) 25 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: .25 四、字符串函数和操作: 四、字符串函数和操作: 四、字符串函数和操作: 四、字符串函数和操作: 四、字符串函数和操作: 四、字符串函数和操作: .27 五、位串函数和操作符: 五、位串函数和操作符: 五、位串函数和操作符: 五、位串函数和操作符: 五、位串函数和操作符: .29 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (函数和操作符 函数和操作符 函数和操作符 <二>) 30 六、模式匹配: 六、模式匹配: 六、模式匹配: .30 八、时间 八、时间 /日期函数和操作符: 日期函数和操作符: 日期函数和操作符: 日期函数和操作符: 日期函数和操作符: 33 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (函数和操作符 函数和操作符 函数和操作符 <三>) 35 九、序列操作函数: 九、序列操作函数: 九、序列操作函数: 九、序列操作函数: . 35 十二、系统信息 十二、系统信息 十二、系统信息 函数: 函数: .38 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (索引 ) 42 一、索引的类型: 一、索引的类型: 一、索引的类型: 一、索引的类型: .42 四、唯一索引: 四、唯一索引: 四、唯一索引: .43 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (事物隔离 事物隔离 ) 45 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (性能提升技巧 性能提升技巧 性能提升技巧 ) 46 一、使用 一、使用 EXPLAINEXPLAINEXPLAINEXPLAIN EXPLAIN: 46 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (服务器配置 服务器配置 服务器配置 ) 50 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: . 50 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (角色和权限 角色和权限 角色和权限 ) 52 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (数据库管理 数据库管理 数据库管理 ) 54 一、概述: 一、概述: .54 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (数据库维护 数据库维护 数据库维护 ) 56 一、恢复磁盘空间: 一、恢复磁盘空间: 一、恢复磁盘空间: 一、恢复磁盘空间: . 56 二、更新规划器统计: 二、更新规划器统计: 二、更新规划器统计: 二、更新规划器统计: 二、更新规划器统计: .57 四、定期重建索引: 四、定期重建索引: 四、定期重建索引: 四、定期重建索引: . 59 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (系统表 系统表 ) 61 一、 pg_class: pg_class: pg_class: pg_class:pg_class: 61 三、 pg_attrdef: pg_attrdef: pg_attrdef:pg_attrdef:pg_attrdef:pg_attrdef:pg_attrdef:pg_attrdef:pg_attrdef: . 63 四、 pg_authid: pg_authid: pg_authid: pg_authid:pg_authid: 64 五、 pg_auth_members: pg_auth_members: pg_auth_members: pg_auth_members:pg_auth_members: pg_auth_members:pg_auth_members:pg_auth_members:pg_auth_members: .64 七、 pg_tablespace: pg_tablespace: pg_tablespace: pg_tablespace: pg_tablespace: pg_tablespace:pg_tablespace: .65 十、 pg_index: pg_index: pg_index:pg_index:pg_index:pg_index: . 67 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (系统视图 系统视图 ) 68 一、 pg_tables: pg_tables: pg_tables: pg_tables: pg_tables: 68 二、 pg_indexes: pg_indexes: pg_indexes:pg_indexes:pg_indexes:pg_indexes: 68 三、 pg_views: pg_views:pg_views: pg_views: pg_views:pg_views: . 68 四、 pg_user: pg_user: pg_user:pg_user:pg_user: .69 五、 pg _roles:_roles:_roles:_roles: _roles: 69 六、 pg_rules: pg_rules:pg_rules:pg_rules: pg_rules: 69 七、 pg_settings: pg_settings: pg_settings: pg_settings:pg_settings: pg_settings:pg_settings:pg_settings: .70 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (客户端命令 客户端命令 客户端命令 <一>) 70 零、口令文件: 零、口令文件: 零、口令文件: .70 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (客户端命令 客户端命令 客户端命令 <二>) 75 七、 pg_dump: pg_dump: pg_dump:pg_dump:. 75 八、 pg_restore: pg_restore:pg_restore:pg_restore: pg_restore:pg_restore:pg_restore:pg_restore: 77 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (SQL (SQL语言函数 语言函数 ) . 83 一、基本概念: 一、基本概念: 一、基本概念: .83 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (PL/pgSQL (PL/pgSQL(PL/pgSQL 过程语言 过程语言 ) .86 一、概述: 一、概述:
目 录 译者序 前言 第1章 Linux操作系统 1 1.1 Linux的简要历史介绍 1 1.2 Linux核心 2 1.2.1 Linux的开发特点 2 1.2.2 Linux分发包 3 1.2.3 为什么要为商业Linux 版本付费 3 1.3 Linux与其他操作系统之间的差异 3 1.3.1 功能丰富 3 1.3.2 多任务 4 1.4 为什么选择 Linux 6 1.4.1 何时使用 Linux 6 1.4.2 服务器与工作站 6 1.4.3 推荐的硬件 7 1.4.4 移植到 Linux工作站 7 1.5 Linux分发包 8 1.6 升级或移植前的考虑 10 1.6.1 硬件兼容性 11 1.6.2 升级 11 1.6.3 从其他操作系统进行移植 12 1.6.4 选择分发包 12 1.7 怎样着手工作 12 1.8 小结 13 1.9 常见问答 13 第2章 Red Hat Linux基本安装 16 2.1 引言 16 2.1.1 物理上独立的机器 16 2.1.2 选择 Linux分发包 16 2.2 初步的安装决定 17 2.2.1 硬件 17 2.2.2 多CPU 17 2.2.3 RAM 17 2.2.4 磁盘 17 2.2.5 RAID 18 2.2.6 网络接口 18 2.2.7 备份问题 19 2.2.8 支持问题 19 2.2.9 安装初步知识 19 2.3 安装 Red Hat 19 2.3.1 快速安装介绍 19 2.3.2 选择安装类型 22 2.4 定制(手工)安装 23 2.4.1 按要求创建分区 23 2.4.2 网络设置 26 2.4.3 时区选择 28 2.4.4 root账号配置 28 2.4.5 验证 29 2.4.6 使用 NIS 或 NIS+ 30 2.4.7 程序包选择 30 2.4.8 X Window 安装 32 2.4.9 程序包安装 34 2.4.10 Linux装载程序与引导盘 35 2.4.11 完成安装 36 2.4.12 配置服务器运行数据库 36 2.4.13 需要注意的事项 36 2.5 Linux的其他风格 36 2.6 小结 37 2.7 常见问答 38 第3章 在 Linux上安装并运行 Oracle 40 3.1 引言 40 3.2 概念 41 3.2.1 系统全局区域 41 3.2.2 程序全局区域 42 3.2.3 表空间 42 3.2.4 数据文件 42 3.2.5 区 42 3.2.6 段 42 3.2.7 控制文件 42 3.2.8 重做日志 42 3.2.9 回退段 42 3.2.10 参数文件 43 3.2.11 版本标识符 43 3.2.12 PL/SQL 43 3.2.13 模式 43 3.4 安装 43 3.4.1 安装前 44 3.4.2 安装Oracle 8 50 3.4.3 安装Oracle 8i 54 3.4.4 安装后 62 3.5 使用 Oracle 8/8i 65 3.5.1 启动和关闭 66 3.5.2 后台进程 67 3.5.3 创建帐号 68 3.5.4 SQL*Plus 70 3.5.5 数据字典 72 3.5.6 导入/导出 73 3.6 第三方软件 73 3.6.1 Orasoft 73 3.6.2 Orac 75 3.6.3 Perl/DBI 76 3.7 小结 76 3.8 常见问答 76 第4章 在Linux上安装 Informix 78 4.1 引言 78 4.2 安装 81 4.2.1 第一部分:软件的获取 和软件的服务器放置 81 4.2.2 第二部分:安装和标记 83 4.2.3 第三部分:磁盘设置和服务器 运行 85 4.2.4 建立 Informix 的数据文件 86 4.2.5 关于磁盘 87 4.2.6 磁盘和目录 87 4.3 关于空间的考虑 88 4.4 配置 88 4.4.1 $INFORMIXDIR/etc/ $ONCONFIG 89 4.4.2 $INFORMIXDIR/etc/sqlhosts 100 4.4.3 /etc/services 100 4.4.4 /opt/data/rootdbs 101 4.4.5 利用 oninit 启动引擎 102 4.4.6 终止引擎 106 4.5 最后的配置 107 4.5.1 回顾 107 4.5.2 Physdbs 107 4.5.3 创建 physdbs 文件 108 4.5.4 logsdbs 111 4.5.5 创建 logsdbs 113 4.5.6 创建新的逻辑日志 114 4.5.7 Tempdbs 123 4.5.8 最终的 $ONCONFIG 配置值 125 4.5.9 重新启动引擎 126 4.6 其他工具 129 4.6.1 Dbaccess 132 4.6.2 Onmonitor 132 4.7 资源 133 4.7.1 Informix 技术支持组织 134 4.7.2 Informix Web 站点 134 4.7.3 Usenet 新闻组 comp.database. informix 134 4.7.4 国际 Informix 用户组(IIUG) 134 4.7.5 Informix出版社 134 4.7.6 Informix 培训 134 4.8 小结 134 4.9 常见问答 135 第5章 在Linux上安装和使用 Sybase 136 5.1 引言 136 5.2 安装 136 5.2.1 安装 SQL Server 11.0.3 137 5.2.2 安装可选的客户机软件 141 5.3 配置 142 5.3.1 配置Sybase Database Server 143 5.3.2 配置Sybase Backup Server 149 5.3.3 配置Sybase Client/Server 库 150 5.3.4 在引导时启动数据库服 务器和备份服务器 151 5.3.5 设置系统管理员口令 151 5.3.6 配置数据库设备和数据库 152 5.3.7 建立用户登录和权限 153 5.4 测试数据库 156 5.5 数据库设计 159 5.6 问题 161 5.6.1 标识列(自动增加) 161 5.6.2 SQL一致性 163 5.6.3 执行环境 164 5.7 小结 168 5.8 常见问答 169 第6章 在 Red Hat Linux上安装DB2 Universal Database 6.1 170 6.1 引言 170 6.2 为安装DB2准备 Red Hat工作站 171 6.2.1 为DB2安装准备 Red Hat 5.2 和 6.0 172 6.2.2 为DB2安装准备 Red Hat 6.1 172 6.3 安装 DB2 173 6.3.1 进行安装 174 6.3.2 检验安装 180 6.4 配置Control Center 182 6.5 安装DB2客户机 184 6.6 配置DB2客户机与DB2服务器通信 188 6.7 小结 194 6.8 常见问答 195 第7章 在Linux上安装MySQL 198 7.1 引言 198 7.2 安装 199 7.2.1 命名约定 199 7.2.2 二进制分发包的安装 201 7.2.3 RPM 分发包的安装 202 7.2.4 源代码分发包的安装 202 7.3 配置 204 7.3.1 安全性 204 7.3.2 权限 205 7.3.3 访问控制 208 7.3.4 系统设置 209 7.3.5 性能 210 7.4 问题 212 7.4.1 线程 213 7.4.2 运行环境 213 7.5 故障处理 214 7.6 小结 215 7.7 常见问答 216 第8章 在Linux上安装和管理Progress 218 8.1 引言 218 8.2 安装 218 8.2.1 从介质中安装 219 8.2.2 核心参数 223 8.2.3 环境设置 225 8.3 配置 226 8.3.1 目录结构 227 8.3.2 磁盘空间与 I/O 吞吐量 227 8.3.3 创建新数据库 229 8.3.4 设置缓冲池尺寸 230 8.4 运行Progress 231 8.5 故障排除 241 8.6 优缺点 242 8.6.1 4GL 243 8.6.2 面向 OLTP 243 8.6.3 可靠的崩溃恢复 243 8.6.4 成本 243 8.6.5 词索引 244 8.6.6 国际化 244 8.6.7 24×7运转 244 8.6.8 无二进制大对象 244 8.6.9 无并行查询 245 8.6.10 无分布式锁管理程序 245 8.7 小结 249 8.8 常见问答 249 第9章 Linux上的Postgre SQL 252 9.1 引言 252 9.2 Internet 驱动Postgre SQL 252 9.3 获得Postgre SQL 253 9.4 PostgreSQL 快速安装说明 254 9.5 详细安装 255 9.6 资源分发包的安装 259 9.6.1 准备工作 259 9.6.2 循序渐进的过程 260 9.7 PostgreSQL样例 RPM 264 9.8 测试Tcl/Tk接口 264 9.9 测试Python接口—PyGreSQL 264 9.10 测试Perl接口 265 9.11 测试libpq和libpq++ 接口 265 9.12 测试Java接口 266 9.13 测试ecpg接口 266 9.14 测试ODBC接口 267 9.15 测试MPSQL Motif-Worksheet 接口 267 9.16 测试SQL样例—用户定义 类型和函数 267 9.17 验证PostgreSQL安装 267 9.18 紧急问题处理 268 9.19 怎样才能信赖 PostgreSQL 268 9.20 系统布局 268 9.21 Kerberos 验证 269 9.21.1 可用性 269 9.21.2 安装 269 9.21.3 运行 269 9.22 运行时的环境—从 UNIX/Linux 中使用 Postgres 270 9.22.1 启动 postmaster 270 9.22.2 使用 pg_options 270 9.22.3 认可的选项 271 9.23 安全 273 9.23.1 用户验证 273 9.23.2 基于主机的访问控制 273 9.23.3 验证方法 274 9.23.4 建立用户 275 9.23.5 建立组 275 9.23.6 访问控制 275 9.23.7 函数和规则 275 9.23.8 函数 275 9.23.9 规则 276 9.23.10 说明 276 9.23.11 安全的TCP/IP连接 276 9.23.12 通过ssh运行安全隧道 276 9.24 增加与删除用户 276 9.25 磁盘管理—支持大型数据库 277 9.26 管理数据库 278 9.26.1 创建数据库 278 9.26.2 访问数据库 278 9.26.3 删除数据库 279 9.26.4 备份和恢复 279 9.26.5 大型数据库 280 9.27 使用 PostgreSQL 的 KVM 开关 280 9.28 故障排除—postmaster 启动故障 281 9.28.1 客户机连接问题 282 9.28.2 调试消息 282 9.28.3 pg_options 283 9.29 技术支持 284 9.30 邮件清单 284 9.30.1 PostgreSQL 的电子邮件账号 284 9.30.2 英文邮件清单 285 9.30.3 邮件清单的归档 285 9.30.4 西班牙邮件清单 285 9.31 PostgreSQL的GUI前台工具 285 9.32 ODBC、JDBC和UDBC驱动程序 286 9.33 Perl 和 DBI 接口 287 9.34 PostgreSQL的教材 289 9.35 PostgreSQL URL 参考 290 9.36 小结 290 9.37 常见问答 291 第10章 开发基于Web的应用程序 295 10.1 引言 295 10.2 Web 应用程序平台 296 10.2.1 Active Server Pages 296 10.2.2 Cold Fusion 296 10.2.3 Java Server Pages 296 10.2.4 Zope 296 10.2.5 Scripting Languages 296 10.2.6 PHP 297 10.2.7 Apache 297 10.3 入门 297 10.4 设计相应的模式 298 10.5 数据流 299 10.5.1 PHP、MySQL 和 Apache: 安装样例应用程序 300 10.5.2 PHP 数据库连通性:进行连接 300 10.6 小结 302 10.7 常见问答 302 附录A 汽车销售应用程序脚本 304 附录B 汽车销售应用程序转储文件 327

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值