首页 > 编程知识 正文

防盗锁,达梦数据库锁表解决

时间:2023-05-05 14:08:29 阅读:31727 作者:3433

梦数据库锁定介绍如何使用锁定模式锁定的粒度TID锁定来控制数据库版本

锁定模式共享锁定

共享锁定(Share Lock,简称s lock )用于读取操作,以防止其他事务修改正在访问的对象。 在此块模式下,多个事务可以同时读取同一资源,但事务不能修改资源。 排他锁

独占锁定(Exclusive Lock,简称x锁定)用于写入操作,独占访问对象,而不允许其他事务访问被阻止的对象。 多个事务同时修改相同的数据,以避免出现数据错误; 防止访问已更改的对象,避免数据不一致。 修改对象定义时常用。 意大利摇滚

“意向锁定”(Intent Lock )用于读取或修改已访问对象的数据,允许多个事务同时对同一对象施加意向锁定。 DM支持两种类型的意向锁定:意向共享锁定(Intent Share Lock )和IS锁定。 通常在访问对象时使用。 独占锁定(Intent Exclusive Lock,简称IX锁定) :一般用于修改对象数据。 锁定粒度

根据块对象,锁定可以分为TID锁定和对象锁定。

TID锁定

TID锁将事务编号作为块的对象,并为每个活动事务生成一个TID锁。 这可以防止多个事务同时修改同一行记录,而不是其他数据库中的行锁定功能。 DM实现了多行级版本,每行记录都隐式包含用于确定事务可见性的TID字段。 对象锁定

对象锁是DM新引入的锁,用统一的对象ID进行阻止,将数据字典的块和表块合并到对象锁中,以减少块的冲突,提高系统的并发性首先,让我们来看看常规数据字典锁和表锁应该分别承担的功能。

数据字典锁定:保护对数据字典对象的并发访问,解决DDL并发和DDL/DML并发问题,防止多个事务同时更改同一对象的字典定义,以及对同一对象的一个事务修改词典的定义,同时防止另一个事务修改相应表中的数据。

表锁:表锁是优化的数据操作,如保护表数据的完整性,防止多个事务同时批量插入和更新到单个表中,以及防止数据插入到使用FAST LOADER工具加载数据的表中表锁还用于防止对具有未提交更改的表执行ALTER TABLE和TRUNCATE TABLE操作。

TID锁定显示1、表中TID字段的显示

说明: TRXID是事务ID。

2、查看动态视图的TID锁定

3、查看表中TRXID字段的内容

使用TID锁控制数据库版本1的方法,每个物理记录包含两个字段: TID和RPTR。 TID保存更改记录的事务处理编号,RPTR保存回退段中上一版本回退记录的物理地址。

2、回滚记录和物理记录一样,添加了TID和RPTR两个字段。 TID存储与回退记录对应的事务处理编号,RPTR存储回退段中上一版本回退记录的物理地址。

a,NEXT_TID TRXID表示当前事务在数据已更改的事务之后与活动事务的动态视图配合使用,如果TRXID位于活动事务中,则表示事务处于

b,如果NEXT_TIDTRXID指示当前事务位于修改数据的事务之前,则数据对于当前事务不可见。

c,NEXT_TID=TRXID表示当前事务是修改数据的事务时

:达梦技术社区https://eco.dameng.com/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。