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

文章目录

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

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

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

197.1.1 问题现象

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

197.1.2 原因分析

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

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

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

    css 复制代码
    gsql -d postgres -p 8000

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

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

    sql 复制代码
    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结束会话。

    scss 复制代码
    SELECT pg_terminate_backend(139834762094352);

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

    markdown 复制代码
    pg_terminate_backend 
    ---------------------
    t
    (1 row)

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

    vbnet 复制代码
    FATAL:  terminating connection due to administrator command 
    FATAL:  terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeed

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

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

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

相关推荐
福大大架构师每日一题32 分钟前
agno v2.8.7 发布:顾问模型、精准路线、调度能力全面升级,10项关键修复一次看懂
java·开发语言·数据库
深念Y39 分钟前
老Flyme 官方 root 开启 ADB TCP 方案
linux·数据库·网络协议·tcp/ip·adb·智能手机·emmc
c238569 小时前
MySQL 基础用法(上):库表管理与数据增删改
c语言·数据库·c++·mysql
jnrjian10 小时前
postgres database 更换用户
数据库·postgresql
無a伟11 小时前
redis缓存完整详解
数据库·redis·缓存
G311354227312 小时前
大模型不可用时,业务还能不能继续:企业需要设计降级方案
大数据·服务器·数据库·人工智能·深度学习
VALENIAN瓦伦尼安教学设备12 小时前
激光对中仪采购要点
数据库·嵌入式硬件·算法
码农颜13 小时前
5.2.2 隔离级别
数据库·mysql
微三云 - 廖会灵 (私域系统开发)13 小时前
基于 OPC 流程控制的抖店集群 SaaS 平台设计与渠道分账系统实现
数据库
骇客野人13 小时前
MySQL 信创化迁移至 PolarDB-X 整体实施方案
数据库·mysql