概述
1、事务的基本概念
一组DML语句 insert、delete、update
COMMIT;
ROLLBACK;
SAVEPOINT <savepoint_name>
ROLLBACK TO [SAVEPOINT] <savepoint_name>
2、隐式提交和回滚
DDL
退出
异常退出
正常退出
2、图解一个事务的操作流程
Undo段的组成:段头、回滚块
1、分配一个事务ID
select xid,xidusn,xidslot,xidsqn,ubablk,ubafil from v$transaction;
事务表
undo段的第一个数据块(段头块,有一个事务表,有47行),每一个回滚段最多可以47个事务
回滚段的段头块
select * from v$rollname;
select header_block,header_file from dba_segments where segment_name='_SYSSMU1$';
alter system dump undo header '_SYSSMU1$';//转储回滚段头
select spid from v$process where addr in (select paddr from v$session where
sid=(select sid from v$mystat where rownum=1));
3324
cd $ORACLE_BASE/admin/$id/udmp/
ls *3324*
alter system dump datafile 5 block 4308;//转储回滚段数据块
图解IMU机制
事务槽(要修改的数据块的头部),最多有255个,存在事务信息:xid、uba(undo block address)
回滚块(存回滚数据的)
1、一个事务开始 在undo表空间找一个空闲的undo段
找到段头的事务表,把事务信息写上(xid UBA)。
同时还要找一个undo块,然后让事务表的信息指向块。
2、修改具体的数据块。首先在数据块的事务槽写上事务编号。
修改了数据块几行数据。然后把修改前的数据放入undo块。同时地址(UBA地址)指向undo块。
xid事务编号 也是地址(1、事务使用那个回滚段的段头块
2、使用的事务表的哪一行
3、第几次被使用)
3、事务表有xid UBA(多个回滚块总是指向最新的块)
被修改的有4个地方
1、事务表被修改了
2、回滚段被修改了
3、数据块事务槽被修改了
4、数据块的数据行被修改了
最后
以上就是激动乌冬面为你收集整理的事务的操作流程的全部内容,希望文章能够帮你解决事务的操作流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复