600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > oracle 体系结构及内存管理 13_事务

oracle 体系结构及内存管理 13_事务

时间:2020-12-08 14:26:27

相关推荐

oracle 体系结构及内存管理 13_事务

独角兽企业重金招聘Python工程师标准>>>

1、事务的基本概念

一组DML语句 insert、delete、update需要同时执行成功或失败。

事务结束:COMMIT , ROLLBACK;

辅助事务回滚一半,批量脚本的时候分批设置

SAVEPOINT <savepoint_name> ;

ROLLBACK TO [SAVEPOINT] <savepoint_name> ;

2、隐式提交和回滚

DDL:执行DDL前后系统会自动执行commit

退出redhat下都是提交的,windows下exit是提交,X掉为回滚:

异常退出:X掉窗口

正常退出:exit

同一会话死掉后不可能会再生,该会话未提交的事务会被回滚

要求:任何DML都要显示的提交或者回滚

logminer:挖掘出某个事务的所有语句

3、事务的ACID属性

3.1、原子性(Atomicity),事务语句一块执行,事务中包含的所有操作要么都做,要么都不做。

例如:A帐户向B帐户划账1000,则先将A减少1000,再将B增加1000,这两个动作要么都提交,要么都回退,不可能

发生一个有效、一个无效的情况。

3.2、一致性(Consistency),事务处理前后数据满足业务一致性状态。数据必须都满足业务规则约束。

例如:A、B帐户的总金额在转账前和转帐后必须一致,其中的不一致必须是短暂的,在事务提交前才会出现的。

3.3、隔离性(Isolation),B事务不能修改A事务未提交的数据,防止多个事务交叉并发执行导致数据的不一致。

例如:在A、B之间转帐时,C同时向A转帐,若同时进行则A、B之间的一致性不能得到满足。所以在A、B事务执行

过程中,其他事务不能访问(修改)当前相关的数值。

3.4、持久性(Durability) ,事务提交后产生的改变永久保存,提交之后数据存放在磁盘中,是永久性的。

4、事务的隔离级别

解锁并修改密码

alter user hr account unlock identified by hr;

开启串行事务,开始一个事务,针对某个会话的设置,提交或回滚后,该设置结束,只能普通用户

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

commit;

默认级别: 一个事务未提交以前,别的会话是看不到修改的

SET TRANSACTION ISOLATION LEVEL READ COMMITED

SET TRANSACTION READ ONLY; --不能再执行DML了

SET TRANSACTION READ WRITE

5、查出未提交的事务,操作的IP,事务操作

select * from v$session where taddr=(select addr from v$transaction);

select * from v$sql --配合查询某会话正在执行的当前SQL语句

select * from v$open_cursor where sid=137;

参考资料:

/huazi88888/article/details/8567599

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。