greenplum数据库-锁

在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁类型来对数据库的事务进行并发控制。

greenplum数据库,基本两种锁:

  • RowExclusiveLock: 行级排他锁,不允许读取和修改。
  • AccessShareLock:共享锁,允许读取,不允许修改。

1.GP查看锁

复制代码
-- 通过表名,获取该表是否被锁,然后按照lorpid字段进行升序排序
select * from gp_toolkit.gp_locks_on_relation t where t.lorrelname = '#{table_name}' order by lorpid;

多个事务同时在数据库中运行时,查看GP库所有表锁

sql 复制代码
SELECT 
l.pid,
a.datname AS database,
c.relname AS table,
l.mode AS lock_mode,
l.granted AS granted,
a.usename AS username,
a.query AS query
FROM 
pg_locks l
JOIN 
pg_stat_activity a ON l.pid = a.pid
JOIN 
pg_class c ON l.relation = c.oid

2.解锁

复制代码
-- 按照lorpid,自上而下,进行删除进程,将排他锁之前的共享锁停止后,排他锁可正常运行。
select pg_cancel_backend('#{pid}')
/* 
select pg_terminate_backend(#{pid}) 
*/

参考文章:

https://www.jianshu.com/p/763eb183a291

相关推荐
vortex53 分钟前
Tomcat 日志文件名的命名规范
java·tomcat
little_xianzhong11 分钟前
Java 日期字符串万能解析工具类(支持多种日期格式智能转换)
java·开发语言
RestCloud13 分钟前
ETL 不只是数据搬运工:如何实现智能转换与清洗?
数据库·api
刘 大 望13 分钟前
传输层:UDP/TCP协议
java·网络·网络协议·tcp/ip·udp·信息与通信
lu9up16 分钟前
因表并行引发的血案【故障处理案例】
数据库·oracle·dba
小胖墩有点瘦17 分钟前
【基于协同过滤的校园二手交易平台】
java·vue·毕业设计·springboot·计算机毕业设计·协同过滤·校园二手交易平台
我真的是大笨蛋23 分钟前
G1 垃圾收集器深入解析
java·jvm·笔记·缓存
ytadpole32 分钟前
揭秘 XXL-JOB 调度:从代码深处看路由策略的精妙设计
java·后端
27^×40 分钟前
Linux 常用命令速查手册:从入门到实战的高频指令整理
java·大数据·linux
学Java的bb43 分钟前
后端Web实战-Spring原理
java·spring boot·spring