文档章节

postgres 僵尸连接释放

jaakan
 jaakan
发布于 2015/11/19 15:50
字数 145
阅读 45
收藏 0

使用python脚本监控postgres中超时的僵尸连接并将其释放

 

#coding:utf-8
from db.SqlUtil import *
import psycopg2.extras
from datetime import datetime,timedelta
import time
import os,sys
from subprocess import *

sql_conn=Driver().getConn()
cursor = sql_conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
cursor.execute("select * from pg_stat_activity WHERE state='idle'  ORDER BY backend_start")
now=time.time()
for obj in cursor.fetchall():
    t=obj["query_start"]
    spT=now-time.mktime(t.timetuple())
    spTH=spT/3600
    if spTH>5:
        pid=obj["pid"]
        cmd="kill %s" % pid
        Popen(cmd, shell=True, stdout=PIPE)
    
cursor.close()
sql_conn.close()

 

将上段代码保存为pgMonitor.py并添加到linux的corntab中定时执行即可

© 著作权归作者所有

共有 人打赏支持
jaakan
粉丝 5
博文 32
码字总数 5876
作品 0
张家港
程序员
查看Postgresql的连接状况

今天遇到一个问题,就是pg一直报错,说有太多的客户端连接到数据库上面。但现在不知道是什么程序连接。pg默认的max_connection是100,我并没有修改过,以为平时公司内部用,应该够了,但现在...

CLLam
2013/06/17
0
3
EDB PPAS(Oracle 兼容版) Oracle与PostgreSQL 兼容模式的参数配置切换

标签 PostgreSQL , EDB , PPAS , 参数 , Oracle模式 , PostgreSQL模式 背景 EDB PPAS是EDB推出的一款同时兼容Oracle和PostgreSQL协议的数据库,在去O的场景中,使用非常广泛,价格便宜,同时...

德哥
05/06
0
0
PostgreSQL Linux 下 僵尸状态的处理

标签 PostgreSQL , Linux , defunct , 僵尸 , ipcrm , kill -9 , pg_ctl stop -m immediate 背景 在某些非常特殊的情况下,可能遇到数据库无法停库,也无法连接(几乎处于不可用状态)的情况。...

德哥
05/06
0
0
[笔记]PostgreSQL发生crash的几种原因

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/halcyonbaby/article/details/60764015 最近调查PostgreSQLcrash,整理了下一般常见的几种原因。 1. Postgre...

寻觅神迹
2017/03/07
0
0
阿里云 RDS PostgreSQL 高并发特性 vs 社区版本 (1.6万并发: 3倍吞吐,240倍响应速度)

标签 PostgreSQL , 阿里云 , 高并发 , 内置pool , Oracle shared server 背景 进程模型数据库,需要为每个会话指派独立的进程与之服务,在连接数非常多,且大都是活跃连接时,进程调度浪费或...

德哥
05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python装饰器执行顺序

上来先看代码: import timedef deco(func): def wrapper(): startTime = time.time() print "start" func() print "end" endTime =......

fang_faye
8分钟前
0
0
java常用设计模式

一、创建型 1、工厂方法(Factory Method) a、普通工厂:根据不同参数返回创建的不同对象。 b、工厂方法:根据不同方法返回创建的不同对象。 c、静态工厂:将方法改为static类型。 场景:S...

狠一点
10分钟前
0
0
python:获取文件最后N行

#获取文件最后N行的函数 def tail(inputfile) : filesize = os.path.getsize(inputfile) blocksize = 1024 dat_file = open(inputfile, 'r') last_line = "" if filesize > blocksize : maxs......

perofu
16分钟前
1
0
JavaScript(四):注释

认识 注释的作用 是提高代码的可读性,帮助自己和别人阅读和理解你所编写的JavaScript代码,注释的内容不会在网页中显示。 注释可分为 单行注释与 多行注释 两种。 我们为了方便阅读,注释内...

Agnes2017
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部