Postgre SQL   发布时间:2022-05-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了postgresql 的进程监控&管理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,在PostgreSQl.conf中把stats_command_String = true打开,使POSTGResql的stats collector process监控每个session的sql语句。

第一个脚本 vIEwsql.sh: 根据pID查看进程的sql执行情况



#!/bin/sh # vIEwsql.sh #
# use to show all active session's sql in POSTGResql.# ######################################################
if test -z $1 ;then
echo "Usage:$0 pID"
exit 10
fi
echo "SELEct * from (SELECT @R_696_5320@_geT_Backend_pID(s.BACkendID) AS
procpid,@R_696_5320@_geT_Backend_activity(s.BACkendID) AS current_query FROM
(SELECT @R_696_5320@_geT_Backend_IDset() AS BACkendID) AS s) as queryString
where procpid=$1;" | psql

这个脚本是显示指定的pID的session目前正在执行的sql语句。

可以这么监控当前最占资源的的进程的sql

top -b -c -n 1 |grep -v grep|grep -i POSTGRe | awk '{print $1}'| while read i ;do ./vIEwsql.sh $i ; done;

我用top -c,结果是:
3665 pgsql 15 0 124M 124M 122M R 30.0 2.1 0:04 POSTGRes: pgsql pgsql [local] INSERT
可以看到:3665这个pID显示在第一条,说明它的sql可能效率比较低。
[pgsql@webtrends bin]$ ./vIEwsql.sh 3665
procpid | current_query 3665 | insert into access_log select * from access_log ;
(1 row)

第二个脚本topsql.sh,试试查看全部的进程sql执行情况


#/bin/bash
while [ 1==1 ];do
ps ux |grep -i "POSTGRes:" | grep -v "grep" | sort -n -k 3 -r | awk '{print $2,$3 }' |
while read i ; do
x=($i);
psql -qt -c "SELEct ${x[1]} as cpu_used,* from (SELECT @R_696_5320@_geT_Backend_pID(s.BACkendID) AS
procpid,@R_696_5320@_geT_Backend_activity(s.BACkendID) AS current_query FROM
(SELECT @R_696_5320@_geT_Backend_IDset() AS BACkendID) AS s) as queryString
where procpid=${x[0]};";
done;
sleep 1;
done;


第三个脚本,kill占用资源高的session
提供一个KILL一个session的脚本,比如:有个session占用的资源太多,如果不kill掉他的话,可能会导致系统DOWN机。
killsession.sh:



#!/bin/sh

# use to kill one session. #

if test -z $1; then
echo "Usage:$0 pID"
exit 10
fi
SID=$1
echo "SELEct pg_cancel_BACkend($SID);"|psql

[pgsql@webtrends bin]$ ./killsession.sh 3665
pg_cancel_BACkend 1
(1 row)

刚才那个很占资源的session的目前的sql操作就被cancel掉了。

大佬总结

以上是大佬教程为你收集整理的postgresql 的进程监控&管理全部内容,希望文章能够帮你解决postgresql 的进程监控&管理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:首先