文档章节

PostgreSQL疑难问题分析步骤

易野
 易野
发布于 07/13 20:20
字数 528
阅读 72
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

运维管理postgresql 时难免不会遇到一些疑难问题,遇到这里问题时怎么处理呢。

一、分析是整库异常还是个别进程异常

二、首先收集信息

确认好异常类别后,可以进行收集相应的信息了

整库异常

1.    检查server状态
执行pg_ctl status [-D datadir],并将结果保存
2.    保存pg_top输出结果
将pg_top所有输出结果保存
按c键输出完整sql文本:
 
3.    保存pg_stat_activity所有记录
psql –c "select * from pg_stat_activity;">$PGNAME_session_activity.csv
4.    保存等待事件信息
查询等待时间,并保存结果
 with t_wait as  
(select a.locktype,a.database,a.relation,a.page,a.tuple,a.classid,a.objid,a.objsubid,a.pid,a.virtualtransaction,a.virtualxid,a,transactionid,b.query,b.xact_start,b.query_start,b.usename,b.datname from pg_locks a,pg_stat_activity b where a.pid=b.pid and not a.granted), 
t_run as  
(select a.mode,a.locktype,a.database,a.relation,a.page,a.tuple,a.classid,a.objid,a.objsubid,a.pid,a.virtualtransaction,a.virtualxid,a,transactionid,b.query,  b.xact_start,b.query_start,b.usename,b.datname from pg_locks a,pg_stat_activity b where a.pid=b.pid and a.granted)  
select r.locktype,r.mode,r.usename r_user,r.datname r_db,r.relation::regclass,r.pid r_pid,r.xact_start r_xact_start,r.query_start r_query_start,r.query r_query, 
w.usename w_user,w.datname w_db,w.pid w_pid,w.xact_start w_xact_start,w.query_start w_query_start,w.query w_query   
from t_wait w,t_run r where 
  r.locktype is not distinct from w.locktype and 
        r.database is not distinct from w.database and 
        r.relation is not distinct from w.relation and 
        r.page is not distinct from w.page and 
        r.tuple is not distinct from w.tuple and 
        r.classid is not distinct from w.classid and 
        r.objid is not distinct from w.objid and 
  r.objsubid is not distinct from w.objsubid 
       order by r.xact_start;
5.    查询锁信息
select a.locktype,a.pid,a.relation,a.mode,a.granted,b.relname from pg_locks a,pg_class b where a.relation=b.oid;

   单个进程异常需要收集相关信息


1.    数据库中查询进程相关sql信息
select * from pg_stat_activity where pid=$pid;
select a.locktype,a.pid,a.relation,a.mode,a.granted,b.relname from pg_locks a,pg_class b where a.relation=b.oid and a.pid=$pid;
2.    收集strace等信息
strace -rTfo strace.$PID -p $PID
3.    收集pstack信息
pstack $PID >> pstack.$PID
lsof -p $PID >> lsof.$PID
4.    收集perf等信息
perf stat -p $PID >> perf_stat.$PID
perf record -e cpu-clock -g -p $PID
 

易野
粉丝 6
博文 214
码字总数 174949
作品 0
深圳
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6.2K
18
实时分析系统--istatd

istatd是IMVU公司工程师开发的一款优秀的实时分析系统,能够有效地收集,存储和搜索各种分析指标,类似cacti,Graphite,Zabbix等系统。实际上,istatd修改了Graphite的存储后端,重新实现了...

匿名
2013/02/07
3.1K
1
日志分析平台 - Kibana

Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。 环境要求: ruby >= 1.8.7 (probably?) bundler logstash...

匿名
2013/02/13
11.7W
1
Swing界面分析和调试工具--Swing Inspector

Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似,具有强大的Swing/AWT用户界面分析和调试相关功能。 适用于从java swing初级到高级的所有开发人员,能够快速...

匿名
2013/03/06
3.5K
0
Python数据分析工具包--Pandas

Python Data Analysis Library 或 pandas 是连接 SciPy 和 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集...

匿名
2012/10/30
2.1W
2

没有更多内容

加载失败,请刷新页面

加载更多

旋转子段 (思维stl)

题目: 大概意思就是给你一个序列,你可以选择一段区间使它左右翻折一遍,然后呢,从1到n找一遍,看a[i]==i的数最多是多少。 其实刚才我已经把暴力思路说出来了,枚举每一个区间长度,枚举每...

osc_npw5uz1o
14分钟前
0
0
回忆录

前言? 果然退役的蒟蒻不仅没有留下有价值的学习资料,甚至连能看的颓废资料都没有。 其实这一年时间里一直想写一篇像样的回忆录。 想把高三也写进去?现在高三结束了。没时间写?现在有了。...

osc_z9ptnny9
16分钟前
9
0
mysql启动失败,unit not found

1 mysql启动 Failed to start mysqld.service: Unit not found. 2 查询/etc/init.d/下是否存在mysqld ll /etc/init.d/ | grep mysqld 发现该目录下并没有mysqld的文件,若存在,请备份一下 ...

osc_um3gbrdm
18分钟前
5
0
域名解析到底应该肿么破——详解域名解析类型

原文地址:https://www.wjcms.net/archives/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E5%88%B0%E5%BA%95%E5%BA%94%E8%AF%A5%E8%82%BF%E4%B9%88%E7%A0%B4%E8%AF%A6%E8%A7%A3%E5%9F%9F%E5%90%8D%......

神兵小将
18分钟前
0
0
Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

osc_3r4js8qy
19分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部