DM8事务管理

        DM 数据库事务管理机制是其核心功能之一,旨在确保数据库操作的一致性、原子性、隔离性和持久性,支持多版本并发控制和闪回功能,并提供多种隔离级别和锁模式,满足不同应用场景的需求。

事务的基本概念和特性

事务是指一系列操作序列,这些操作要么全部完成,要么全部不做,不可分割。事务的四大特性:

· 原子性:确保事务中的所有操作要么全部完成,要么全部不做,不可分割。

· 一致性:确保事务执行前后,数据库保持一致性状态。

· 隔离性:确保事务之间相互隔离,互不影响。

· 持久性:确保一旦事务提交,对数据库的修改就是永久性的。

事务的提交和回滚

· 提交:将事务对数据库的修改永久化,并将事务标记为完成。

· 回滚:撤销事务对数据库的修改,恢复到事务开始前的状态。

· 保存点:允许事务部分回滚到某个标记点,保留之前操作的结果。

事务模式

· 自动提交模式:每条 SQL 语句执行后自动提交,适用于简单操作。

· 手动提交模式:用户手动控制事务的开始和结束,适用于复杂操作。

· 隐式提交:遇到 DDL 语句时自动提交前一个事务,确保数据字典的一致性。

事务锁定

· 锁模式:共享锁、排他锁、意向共享锁、意向排他锁,控制对数据的访问权限。

· 锁粒度:TID 锁(行级)、对象锁(数据字典和表锁),控制锁的范围。

· 显式锁定表:用户可以手动锁定表对象,限制其他事务的操作,例如进行批量更新。

多版本控制

        DM 数据库采用行级多版本控制机制,通过物理记录和回滚记录实现,消除了行锁对系统资源的消耗,提高了并发性能。

· 物理记录:包含 TID 和 RPTR 字段,记录修改事务号和回滚记录地址。

· 回滚记录:包含 TID 和 RPTR 字段,记录回滚事务号和上一个版本回滚记录地址。

· 可见性原则:根据事务隔离级别和活动事务表判断数据可见性。

· 历史数据获取:通过 RPTR 指针回溯历史版本,找到对当前事务可见的版本。

· 回滚段自动清理:定期清理不再需要的回滚记录,释放空间。

事务隔离级别

DM 数据库支持三种事务隔离级别,控制事务之间的隔离程度:

· 读未提交:允许脏读、不可重复读和幻读,并发性能最高,但数据一致性最低。

· 读提交:默认隔离级别,不允许脏读,但允许不可重复读和幻读,兼顾并发性能和数据一致性。

· 串行化:最严格的隔离级别,不允许脏读、不可重复读和幻读,数据一致性最高,但并发性能最低。

· 只读事务:只能访问数据,不能修改数据,不会改变事务原有的隔离级别。

锁等待与死锁检测

· 阻塞:一个事务等待另一个事务释放锁。

· 死锁:多个事务互相等待对方的锁,形成循环等待。

· 死锁检测:DM 数据库检测到死锁时,会牺牲一个事务,释放其持有的锁,避免死锁。

闪回

        闪回技术通过回滚段存储的 UNDO 记录还原历史数据,实现闪回查询,帮助用户恢复误操作导致的数据丢失,并可用于数据变化分析。

XA 事务

        XA 事务是跨多个资源管理器的分布式事务,DM 数据库支持 XA 编程接口和 DBMS_XA 包两种方式,满足分布式应用场景的需求。

        DM 数据库事务管理机制功能丰富,能够满足各种应用场景的需求,确保数据一致性、并发性和安全性。通过多版本控制、多种隔离级别和锁模式,DM 数据库在保证数据一致性的同时,提高了并发性能,并提供了闪回功能,帮助用户应对数据丢失等意外情况。      

  达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值