GreenPlum - 数据库锁 & 连接事务排查命令

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GreenPlum - 数据库锁 & 连接事务排查命令相关的知识,希望对你有一定的参考价值。

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

GreenPlum 数据库,基本两种锁

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

锁操作

  • 查看锁
-- 通过表名,获取该表是否被锁,然后按照 lorpid 字段进行升序排序
select * from gp_toolkit.gp_locks_on_relation t where t.lorrelname = '#table_name' order by lorpid;
  • 解锁
-- 按照 lorpid,自上而下,进行删除进程,将排他锁之前的共享锁停止后,排他锁可正常运行
select pg_cancel_backend('#pid')
-- select pg_terminate_backend(#pid) 

事务操作

SELECT * 
FROM pg_stat_activity
WHERE usename = '#数据库账号名'
ORDER BY backend_start desc

以上是关于GreenPlum - 数据库锁 & 连接事务排查命令的主要内容,如果未能解决你的问题,请参考以下文章

GreenPlum/PostGreSQL表锁处理

升级 greenplum-db

升级 greenplum-cc-web 到 4.4.0

[GreenPlum] -> 使用JDBC连接GreenPlum数据库

python连接Greenplum数据库

Greenplum 架构详解 & Hash Join 算法介绍