pg数据库杀掉连接
遇到异常连接时,需要将对应连接杀掉,可能是连接占用了过多CPU或是IO,影响了业务,或是时间过长的空闲事务.
pg对于杀掉连接提供了专门的命令,一般情况下使用pg_cancel_backend
就可以,不过操作取消不掉,可以使用pg_terminate_backend
,如果pg_terminate_backend
命令,仍然无法将连接杀掉,此时可以使用tcpkill
,将连接的网络通信连接直接杀掉。
有时候,出现使用pg_terminate_backend
也杀不掉的连接,通常是网络的问题,诸如misrouted packets,retransmissions,blocked sockets,timeouts,stalls此类的网络问题,都在等待客户端和pg通信的中断。
有时候网络的socket会处于这种状态:当pg做写操作时,被中断了。
在这种状态中,pg等待着来自客户端的回复,来确认客户端已收到数据,或是经由操作系统将该网络连接标记为损坏的,中断的。如果这些没有发生,那么pg就会一直等待直到收到客户端中断的命令。
此时可以使用tcpkill中断网络连接,然后操作系统就会关闭network socket,这样pg的连接也就自动退出了。
命令如下:
tcpkill -i eth0 -9 port client_port
-i: 指定数据库使用的是哪个network interface
client_port: 连接数据库连接的客户端端口
执行后,输出下面的信息后,可确认执行完成:
[root@pg2 ~]# tcpkill -i eth0 -9 port 60988
tcpkill: listening on eth0 [port 60988]
172.16.3.94:60988 > 172.16.3.95:1921: R 1241262920:1241262920(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241263157:1241263157(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241263631:1241263631(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241264342:1241264342(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241265290:1241265290(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241266475:1241266475(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241267897:1241267897(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241269556:1241269556(0) win 0
172.16.3.94:60988 > 172.16.3.95:1921: R 1241271452:1241271452(0) win 0
172.16.3.95:1921 > 172.16.3.94:60988: R 4254183996:4254183996(0) win 0
172.16.3.95:1921 > 172.16.3.94:60988: R 4254184253:4254184253(0) win 0
172.16.3.95:1921 > 172.16.3.94:60988: R 4254184767:4254184767(0) win 0
172.16.3.95:1921 > 172.16.3.94:60988: R 4254185538:4254185538(0) win 0
172.16.3.95:1921 > 172.16.3.94:60988: R 4254186566:4254186566(0) win 0
172.16.3.95:1921 > 172.16.3.94:60988: R 4254187851:4254187851(0) win 0
这个命令执行完成,有时可能需要几分钟,所以要耐心等待一下。
tcpkill
命令是网络嗅探工具包dsniff中的一个工具,如果要使用tcpkill
,要先安装好dsniff。
使用源码安装不太容易,常报错,推荐使用yum安装,这里使用的是阿里云的yum源。
这个文件的安装走的是epel.repo部分。
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
pg数据库杀掉连接的更多相关文章
- JPA连接PG数据库时间类型查询报错的修改
PG数据库中的时间格式规范: https://blog.csdn.net/sky_limitless/article/details/79527665 to_data 转换为 普通的时间格式 to_t ...
- oracle杀掉连接
相关sql --查看当前连接 select count(*) from v$process --数据库允许的最大连接数 select value from v$parameter where name ...
- T-SQL 关闭数据库所有连接
原文引用自: http://www.cnblogs.com/kissazi2/p/3462202.html 下面给出一种删除数据库活动连接的方式.将下面代码段中的"--修改一下"处 ...
- php判断数据库是否连接成功的测试例子
php判断数据库是否连接成功的测试例子 如果出现数据库配置不正确的错误,请看php与mysql的配置教程: win7系统下如何配置php-Apache-mysql环境 http://www.cnblo ...
- java中与数据库的连接
package unitl01; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet; ...
- jsp与数据库的连接
经过一段时间的学习与上网查资料,我已经成功的用java语言连接上了数据库, 本以为同理jsp跟数据库的连接肯定水到渠成的,但是在经过尝试很多次后我发现现实永远是骨感的,最终结果是花了一个下午的时间去建 ...
- 数据库最大连接池max pool size
本文导读:Max Pool Size如果未设置则默认为100,理论最大值为32767.最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影 ...
- jsp_数据库的连接
一.添加数据库以及表 在这里我们使用的是mysql数据库 二.配置数据库的驱动程序 将mysql的驱动程序复制到Tomcat目录下的lib目录中 注:在Tomcat中如果配置了新的jar包,则配置完成 ...
- [转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言
最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...
随机推荐
- css 剩余宽度完全填充
从网上转的. <html> <head> <meta http-equiv="Content-Type" content="text/htm ...
- python2.7 倒计时
From: http://www.vitostack.com/2016/06/05/python-clock/#more Python公告 Python 发布了一个网站 http://pythoncl ...
- 学习记录 div悬停在顶部 。div阻止冒泡
如何让一个div可点击,并且div里面的a元素也能点击? 楼主应该是想要这样的,阻止事件冒泡 点击里面的a的时候不触发外面的div的点击事件 <script type="text/ja ...
- 《Spring1之第七次站立会议》
<第七次站立会议> 昨天:我把自己项目工程里的服务器端界面进行了优化和完善. 今天:我查找了关于实现视频功能的相关代码. 遇到的问题:找到的都是基于C#的相关代码,很难找到用java实现的 ...
- 项目Beta冲刺(团队)第六天
1.昨天的困难 可以获得教务处通知栏的15条文章数据了,但是在显示的时候出了问题. 私信聊天的交互还没研究清楚 2.今天解决的进度 成员 进度 陈家权 研究私信模块 赖晓连 研究问答模块 雷晶 研究服 ...
- 基于GUI的小学生四则运算系统
前言:首先在此感谢我的结对搭档,没有她的帮助和引导绝不会有现在的项目.很高兴和她一起结对完成这个项目.搭档真的是棒棒哒! 一.Coding.Net项目地址: https://git.coding.ne ...
- 小学四则运算结对项目报告(GUI)
小学四则运算结对项目报告(GUI) 一.Coding.Net项目地址: https://git.coding.net/wsshr/Calculation.git 二.PSP表格(完成前): PSP 任 ...
- js作用域相关笔记
1.js引擎.编译器.作用域. 引擎:负责JS全过程的编译和执行: 编译器:负责语法分析和代码生成: 作用域:负责收集并维护声明组成的查询,以及当前执行代码对这些变量的访问权限(简言之,作用域就是用于 ...
- Sprint2的每日更新
按照以下过程进行 ProductBacklog:继续向下细化 Sprint 计划会议:确定此次冲刺要完成的目标 Sprint Backlog:新的冲刺要完成的内容 任务认领 Sprint周期 看板:一 ...
- 用户数以及psp
小组名称:好好学习 小组成员:林莉 王东涵 胡丽娜 宫丽君 项目名称: 记账本 alpha发布48小时以后用户数如何,是否达到预期目标,为什么,是否需要改进,如何改进(或理性估算). 首先我 ...