熟悉Oracle的人可能会去经常使用kill -9杀进程,因为有的时候使用SQL命令去杀进程,一些进程的状态只是会被置为"killed"状态,其锁定的资源仍然没有释放,可能会收到提示:

ORA-00031: session marked for kill

因此甚至还建议大家去使用kill -9直接去操作系统上杀掉进程。

又比如我们Oracle停库的时候常常都是先停监听,再手动kill掉LOCAL=NO的进程,然后再去停库。

但是要注意了,切勿在PostgreSQL中使用kill -9去杀掉进程!

首先我们先 看一个例子:

这里我们有一个进程号为474的psql进程,如果我们使用kill -9杀掉该进程会发生什么呢?

我们发现,其它的一些postgresql的后端进程都受到了影响,其进程ID都发生了变化。
通过查看日志,我们发现这些进程确实是被重置了:

这也是为什么我们不建议使用kill -9去杀掉pg的进程,而在Oracle中却不会这样:


这是因为Oracle由于pmon进程的存在,在某个进程非正常退出后,会做好妥善的后事及清理工作。PostgreSQL由于没有,假如某个进程正在修改shared buffer里的某个数据块,然后被异常终止了,Postmaster为了安全,就会主动停下其他后台进程,做修复善后工作,重置其状态来接受新的连接。

所以,千万不要在pg中使用kill -9去杀进程,而是使用select pg_terminate_backend()和pg_cancen_backend(),或者是pg_ctl kill SIGNALNAME PID的方式。

参考链接:
https://postgreshelp.com/operating-system-kill-signals-on-postgresql/
https://www.modb.pro/db/44333

PostgreSQL 切勿kill -9去杀进程相关推荐

  1. android 杀死后台进程,android 几种杀进程的方式

    今天在编写 application 通用组件时,需要在低内存的回调中杀死进程,所以找了下 androd 傻进程的方法,总结下来有下面几种: 根据进程名称杀进程 android.os.Process.k ...

  2. kill进程_你还在使用kill -9 杀进程吗?从原理谈避免踩雷!

    你要"跑路"了吗? 只要你用过 UNIX/LINUX ,我敢打赌你大概率执行过这样一条命令,也就是俗话说的"杀进程": kill -9 执行它,是不是如同执行以 ...

  3. linux查看进程运行日志文件,【Linux】常用指令、ps查看进程、kill杀进程、启动停止tomcat命令、查看日志、查看端口、find查找文件...

    1.说出 10 个 linux 常用的指令 1) ls 查看目录中的文件 2)cd /home 进入 '/ home' 目录:cd .. 返回上一级目录:cd ../.. 返回上两级目录 3)mkdi ...

  4. mysql强制杀进程_mysql 杀掉(kill) lock进程脚本

    杀掉lock进程最快的方法是重启mysql,像你这种情况,1000多sql锁住了,最好是重启 如果不允许重启,我提供一个shell脚本,生成 kill id命令杀掉lock线程,如下: ------- ...

  5. kill -9 pid杀不死的进程

    发现170994和174008这两个进程使用kill -9 pid杀不死 可能的原因是其父进程没有杀死 那么如何查找父进程 使用如下命令 ps -ef |grep pid 第三列为其父进程的pid号 ...

  6. Linux查看进程ps -ef、杀进程kill

    查看某个服务的进程 例如mysql: ps -ef|grep mysql (ps aux 是用BSD的格式来显示Java进程 显示的项目有: USER        PID %CPU %MEM    ...

  7. Linux:使用ps-grep-awk批量kill杀进程

    scheduler_center.py 为我要杀掉的进程 # ps -ef|grep scheduler_center.py root 12013 python3 scheduler_center.p ...

  8. 总用kill -9杀进程,知道9代表什么吗?

    linux 的信号机制 信号是Linux中非常重要的部分. 信号机制是进程间相互传递消息的一种方法,全称为软中断信号.信号可以看作进程控制的一部分. 基本概念 signal用来通知进程发生了异步事件, ...

  9. 查看进程树(pstree,ps)、杀进程(kill,killall,pkill)

    案例:查看用户lisi开启进程 [root@server0 ~]# su - lisi #切换lisi用户 [lisi@server0 ~]$ vim aa.sh #随便开启一个程序[root@ser ...

最新文章

  1. [linux内核][linux中断]——软中断机制
  2. PhalGo-Request
  3. 用circlize包绘制circos-plot
  4. 简单明了区分escape、encodeURI和encodeURIComponent
  5. winfrom 图片互传
  6. Eureka实例自动过期
  7. 利用 Domino V8 新特性开发 Mashup 应用(转载)
  8. io.jsonwebtoken.ExpiredJwtException jwt令牌过期
  9. IXWebHosting主机如何退款中文图解教程
  10. JVM(2)--OutOfMemoryError实战
  11. F7-Nginx虚拟主机Server
  12. VS生成dump文件和调试dump文件
  13. 数字图像处理笔记(八)彩色图像和彩色图像直方图均衡化
  14. python死循环_Python for死循环
  15. excel多个窗口独立显示_办公软件操作技巧060:如何快速切换excel工作簿
  16. ESP8266连接手机
  17. choco无法将choco识别_终于有个可以量产的法甜配方了,来自巴黎CHOCO(已打包可下载)...
  18. 基于极限学习机的预测、图像降噪和回归
  19. vue中image 的:src 与 src
  20. html标签的多级列表,Word小技巧1:利用多级列表功能实现章节标题自动编号

热门文章

  1. 全角半角字符及相互转换
  2. Android定时开机及其实现流程
  3. 后处理——深入相机变形特效
  4. 如何在纵向的Word文档中创建横向页面
  5. 小笔记-简单但够用系列_PPT内嵌html格式动态图表运行时错误
  6. android华为手机开启蓝牙耳机,华为手机如何连接蓝牙耳机? 华为手机连接蓝牙耳机方法教程介绍!...
  7. 详解设计模式之装饰者模式[以奶茶为案例介绍]
  8. iphone调用震动功能
  9. php 找目录下txt文件,PHP遍历目录下的TXT文件且按时候排序_后端开发
  10. Android图像识别扫名片识别技术SDK