当前位置: 首页 > news >正文

openGauss学习笔记-197 openGauss 数据库运维-常见故障定位案例-分析查询语句是否被阻塞

文章目录

    • openGauss学习笔记-197 openGauss 数据库运维-常见故障定位案例-分析查询语句是否被阻塞
      • 197.1 分析查询语句是否被阻塞
        • 197.1.1 问题现象
        • 197.1.2 原因分析
        • 197.1.3 处理办法

openGauss学习笔记-197 openGauss 数据库运维-常见故障定位案例-分析查询语句是否被阻塞

197.1 分析查询语句是否被阻塞

197.1.1 问题现象

数据库系统运行时,在某些业务场景下,查询语句会被阻塞,导致语句运行时间过长。

197.1.2 原因分析

查询语句需要通过加锁来保护其要访问的数据对象。当要进行加锁时发现要访问的数据对象已经被其他会话加锁,则查询语句会被阻塞,等待其他会话完成操作并释放锁资源。这些需要加锁访问的数据对象主要包括表、元组等。

197.1.3 处理办法
  1. 以操作系统用户omm登录主机。

  2. 使用如下命令连接数据库。

    gsql -d postgres -p 8000
    

    postgres为需要连接的数据库名称,8000为端口号。

  3. 从当前活动会话视图查找问题会话的线程ID。

    SELECT w.query AS waiting_query, w.pid AS w_pid, w.usename AS w_user, l.query AS locking_query, l.pid AS l_pid, l.usename AS l_user, t.schemaname || '.' || t.relname AS tablename FROM pg_stat_activity w JOIN pg_locks l1 ON w.pid = l1.pid AND NOT l1.granted JOIN pg_locks l2 ON l1.relation = l2.relation AND l2.granted JOIN pg_stat_activity l ON l2.pid = l.pid JOIN pg_stat_user_tables t ON l1.relation = t.relid WHERE w.waiting = true;
    
  4. 根据线程ID结束会话。

    SELECT pg_terminate_backend(139834762094352);
    

    显示类似如下信息,表示结束会话成功。

    pg_terminate_backend 
    ---------------------
    t
    (1 row)
    

    显示类似如下信息,表示用户正在尝试结束当前会话,此时仅会重连会话,而不是结束会话。

    FATAL:  terminating connection due to administrator command 
    FATAL:  terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeed
    

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

相关文章:

  • Sublime Text4 crack时替换的汇编指令
  • 时间戳的大小写的坑
  • 深入理解 Flink(五)Flink Standalone 集群启动源码剖析
  • 逻辑回归(解决分类问题)
  • 通过Wireshark抓包分析谈谈DNS域名解析的那些事儿
  • 通过开源端点可见性改善网络安全响应
  • 【React 常用的 TS 类型】持续更新
  • 树莓派4B-Python-使用PCA9685控制舵机云台+跟随人脸转动
  • QT笔记 - 添加项目到版本控制系统 - Git
  • mysql原理--redo日志2
  • 2024,会更好嘛?
  • golang学习-流程控制
  • Golang+Gorm库使用踩坑——未标识primarykey导致创建后无法返回修改
  • 大白菜U盘安装系统-戴尔电脑
  • 【JVM 基础】类字节码详解
  • JS专题之继承
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • python学习笔记-类对象的信息
  • SSH 免密登录
  • storm drpc实例
  • VUE es6技巧写法(持续更新中~~~)
  • Vue实战(四)登录/注册页的实现
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 基于web的全景—— Pannellum小试
  • 深入 Nginx 之配置篇
  • 时间复杂度与空间复杂度分析
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 数据仓库的几种建模方法
  • 移动端解决方案学习记录
  • 《天龙八部3D》Unity技术方案揭秘
  • Java性能优化之JVM GC(垃圾回收机制)
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (C语言)共用体union的用法举例
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (八)Flask之app.route装饰器函数的参数
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (十六)Flask之蓝图
  • (转)shell调试方法
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)甲方乙方——赵民谈找工作
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • [14]内置对象
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [C#]C#学习笔记-CIL和动态程序集
  • [C/C++]数据结构 堆的详解
  • [C/C++随笔] char与unsigned char区别
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]