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

PostgreSQL 修改表结构卡住不动

目录

  • 1 问题
  • 2 实现

1 问题

今天遇到的一个问题记录一下,因为系统上的一个改动需要同步脚本至测试库上,具体的脚本内容也很简单,就是修改了某张表的一个字段。但是无论怎么操作都是一直卡住,表的数据量很小就十几条数据所以初步怀疑是表被锁了。后经查证确实是被锁住了。

2 实现

查询表锁SQL
select * from pg_locks where relation=
(select oid from pg_class where relname=‘可能锁表了的表’);
1
2
经过上述SQL查出来的记录得知了该表确实存在锁(导致锁表的原因并未找到),由于是测试环境我这里为了省事并没有看具体是哪个锁导致的无法修改表结构直接全部干掉,如果是生产环境还是建议排查下产生锁的SQL和进程等详细信息,确定了解决方案开始一阵百度找到了pg_cancel_backend函数,可以用来取消进程的事务进行回滚,但是事情并没有迎刃而解,其中有一个锁无论如何也关不掉。不用想了肯定是这个锁导致的我无法修改表,于是翻阅了官方文档找到了另一个相关的函数pg_terminate_backend,使用了这个函数之后上面那个“钉子户”才终于被我干掉,然后发现表确实是可以修改了,完美解决。函数和对应的作用写在下方,具体的更多的使用大家可以参阅官网文档。

取消函数和中断函数
–取消后台操作,回滚未提交事物
select pg_cancel_backend(上面查到的pid)
–中断session,回滚未提交事物
select pg_terminate_backend(上面查到的pid)

http://www.lryc.cn/news/361574.html

相关文章:

  • wvp-gb28181-pro搭建流媒体服务器,内存占用过高问题
  • 项目-双人五子棋对战: websocket的讲解与使用 (1)
  • 性能飙升50%,react-virtualized-list如何优化大数据集滚动渲染
  • 颠覆传统:探索Web3对传统计算机模式的冲击
  • 最适合上班族和宝妈的兼职副业,一天500多,小众副业项目
  • HFish蜜罐实践:网络安全防御的主动出击
  • vue3+three.js给glb模型设置视频贴图
  • SCARA机器人中旋转花键的维护和保养方法!
  • Linux运维-服务器系统配置初始化脚本
  • 暑期来临,AI智能视频分析方案筑牢防溺水安全屏障
  • 【第3章】SpringBoot实战篇之登录接口(含JWT和拦截器)
  • vue el-table使用、el-popover关闭、el-image大图预览
  • 星网智云总经理韦炜:低代码与智能制造融合,探索未来制造的无限可能
  • 3d模型批量渲图总是会跳怎么办?---模大狮模型网
  • 【距离四六级只剩一个星期!】刘晓艳四级保命班课程笔记(2)(可分享治资料~)
  • Java之Enum枚举类实践
  • Apache POI对Excel进行读写操作
  • 网络安全中攻击溯源方法
  • 软件设计不是CRUD(21):在流式数据处理系统中进行业务抽象落地——需求分析
  • 远控免杀篇
  • 基于单片机的超声波倒车雷达设计
  • 如何增加服务器的高并发
  • webservice、WCF、webAPI权限认证
  • Kafka之Producer原理
  • ubuntu20.04部署gitlab流程
  • C/C++动态内存管理(new与delete)
  • 搭建一个基于主流技术Spring Boot 2 + Vue 3 + Ant Design Vue的技术框架的简要步骤
  • 水电站生产指挥调度系统方案
  • 深度学习入门-第3章-神经网络
  • 如何使用AES128位进行视频解密