postgresql 表锁定问题处理

这篇具有很好参考价值的文章主要介绍了postgresql 表锁定问题处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

数据库中某张表无法查询以及字段设计修改,查询访问显示超时

分析与处理

1、查询被锁定的表

--查询被锁住的进程
SELECT
    pg_class.relname AS table_name,
    pg_locks.mode AS lock_mode
FROM pg_locks
         JOIN pg_class ON pg_locks.relation = pg_class.oid
WHERE pg_locks.granted = false
  AND pg_class.relkind = 'r'
ORDER BY pg_class.relname;

2、语句解析

这个 SQL 查询语句用来查看正在被锁定但是没有被授权的关系型表的名称和锁定模式。其含义如下:
(1)pg_class.relname AS table_name:将pg_class系统目录表中的relname列(关系表的名称)重命名为table_name
(2)pg_locks.mode AS lock_mode:将pg_locks系统视图中的mode列(锁定模式)重命名为lock_mode
(3)JOIN pg_class ON pg_locks.relation = pg_class.oid:将pg_locks.relation列(对象 ID)与pg_class.oid列(关系表的对象 ID)连接起来,以获取关系表的名称。
(4)WHERE pg_locks.granted = false AND pg_class.relkind = 'r':过滤出未被授予锁定权限的关系型表,并根据关系表类型(relkind)的值为r(关系型表)进行筛选。
(5)ORDER BY pg_class.relname:按照关系表的名称进行排序。

这个查询语句通常用于排查数据库中锁定操作导致的性能问题。如果发现某个表处于锁定状态,您可以尝试找出具有锁定权限的连接并与他们联系,以释放表锁以及解决问题。

消除锁定进程

SELECT pg_cancel_backend(pid) FROM pg_locks WHERE relation='table_name'::regclass;

这段 SQL 语句的含义是查询 t_service_obj 表上的锁,并取消持有该锁的后台进程。pg_locks 是一个系统表,它用于跟踪数据库中的锁定情况。pid 是一个列,它包含了锁定持有进程的 ID。pg_cancel_backend(pid) 函数用于结束指定进程的执行。在这个例子中,如果某个后台进程正在持有 t_service_obj 表上的锁,那么该进程的执行将被结束。文章来源地址https://www.toymoban.com/news/detail-817580.html

到了这里,关于postgresql 表锁定问题处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • POSTGRESQL 关于2023-08-14 数据库自动启动文章中使用KILL 来进行配置RELOAD的问题解释...

    开头还是介绍一下群,如果感兴趣Polardb ,mongodb ,MySQL ,Postgresql ,redis ,SQL SERVER ,ORACLE,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 ,在新加的朋友会分到3群(共1170人左右 1 + 2 + 3) 首先道歉,昨天关于P

    2024年02月12日
    浏览(51)
  • 数据库相关理论知识(有目录便于直接锁定相关知识点+期末复习)

    一,数据模型,关系型数据模型,网状模型,层次模型 1. 数据库模型 是用来描述和表示现实世界中的事物、概念以及它们之间的关系的工具, 但是并不是越专业越好,还要平衡它的模型的复杂性、通用性和成本效益等因素 。数据模型按不同的应用层次可以分为 三个层次 ,

    2024年03月16日
    浏览(56)
  • Spring Boot使用jasypt处理数据库账号密码等数据加密问题

    在我们业务场景中,项目中的application.yml 配置文件比如数据库账号密码,的各种链接的username,password的值都是明文的,存在一定的安全隐患,可以使用jasypt 加密框架的方式进行明文加密,进而使得我们项目更加安全 注意这里排除了mybatis-plus的包可能是项目中有冲突依赖,

    2024年02月06日
    浏览(55)
  • JavaEE-博客系统1(数据库和后端的交互)

    本部分内容包括网站设计总述,数据库和后端的交互; 数据库操作代码如下: DBUtil.java blog.java user.java blogDao.java userDao.java

    2024年02月07日
    浏览(31)
  • 线上问题处理案例:出乎意料的数据库连接池

    本文是线上问题处理案例系列之一,旨在通过真实案例向读者介绍发现问题、定位问题、解决问题的方法。本文讲述了从垃圾回收耗时过长的表象,逐步定位到数据库连接池保活问题的全过程,并对其中用到的一些知识点进行了总结。 大促期间,某接口超时次数增多,经排查

    2024年02月05日
    浏览(39)
  • py连接sqlserver数据库报错问题处理。20009

    pymssql模块连接sqlserver出现如下错误: 打开“SQL Server Configuration Manager”,找不到的话,可在计算机管理 - 服务和应用程序中找到。 在SQL Server Network Configuration - Protocols for SQLEXPRESS中启用TCP/IP协议, TCP/IP - Properties - IP Addresses 修改里面ip为127.0.0.1的启用状态。 TCP/IP - Properties

    2024年02月01日
    浏览(49)
  • 在数据库造数据发现的bug也是bug

           上个月,我和开发小哥讨论过一个问题,开发小哥专门提醒我,页面上新增功能尽可能在前端造一些数据去测试,如果直接从数据库里插入的数据,定位问题还是有些说不清楚。 讨论的过程和细节就是以下的对话内容: 测试小姐姐: 企业设备翻页查询的时候报这个错

    2024年02月02日
    浏览(49)
  • postgresql序列重复问题处理

    在执行数据插入时,postgresql 提示 more than one owned sequence found 错误。这个和之前文章中写的序列编号错乱不同,是由数据表的一个列生成了多个序列导致的。(常见于两个数据库的拷贝、同步等操作)。 如果查看序列,会发现序列中有很多重复的项目,可以执行语句: 生成

    2024年02月13日
    浏览(38)
  • 【MogDB】将流行的博客系统Halo后端的数据库设置为MogDB

    本人的个人博客站点(https://www.darkathena.top )基于Halo博客系统搭建,该博客系统后端可以配置多种数据库,默认为H2,但是最新版已不建议使用H2,而是建议使用mysql/postgresql等数据库。经验证,MogDB数据库也可以作为Halo博客系统的后端数据库。 安装MogDB数据库 (可参考MogDB官

    2024年02月22日
    浏览(39)
  • Sql Server 占用内存高,不释放内存,数据库连接不上 问题处理记录

    项目上反应生产线箱码不能上传到我们系统,我们的WMS软件退出后重新登录也一直登录失败,并且服务器上数据库占用内存过高,SSMS数据库连接不上。 好家伙SQL Server占用了34个G内存。 接口日志中连接数据库报错:System.Data.SqlClient.SqlException: 当前命令发生了严重错误。应放弃

    2024年02月14日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包