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

相关推荐
geats人山人海6 分钟前
java 4继承
java·开发语言
蓝胖的四次元口袋22 分钟前
Redis知识梳理(1)
数据库·redis·缓存
夜雪一千27 分钟前
MySQL 数据加密实战:从传输、存储到字段级加密,分清场景不踩坑
数据库·mysql
众链网络30 分钟前
Agent 的成本大头不在“写“,在“判断“:拆解专用决策模型的三层架构
java·开发语言·人工智能·微服务
周小董32 分钟前
[1371]jdk管理工具
java·开发语言
青春逝如流水44 分钟前
Java 中线程的创建方式:从基础到现代
java·开发语言·多线程·ai文章
wefg11 小时前
【Redis】C++ 自定义客户端
数据库·redis·缓存
Peregrine91 小时前
C++ - > 类和对象
java·c++·算法
这个DBA有点耶1 小时前
为什么UPDATE比SELECT危险得多?锁范围等于扫描行数
数据库·架构·代码规范
2501_933923251 小时前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka