oracle 开始一个事务,oracle的启动与关闭原理-事务commit或者rollback

oracle的启动与关闭原理-事务commit或者rollback

4、事务

4.1事务的概念

从第一个DML语句开始执行,以rollback或者commit为结束标记,之前所有的DML操作(insert,update,delete )都是属于这个事务的范围内。

4.2 事务的提交操作

(1)首先解锁一个用户并改密码

SQL> alter user scott account unlock;

User altered.

SQL> alter user scott identified by scott;

User altered.

(2)连接到scott用户

SQL> conn scott/scott;

Connected.

(3)创建一个tt的表

SQL> create table tt(

2  id number

3  );

SQL> insert into tt values(1);

1 row created.

SQL> select * from tt;

ID

----------

1

SQL> insert into tt values(2);

1 row created.

SQL> select * from tt;

ID

----------

1

2

SQL> commit;        --这是一个事务的结束

Commit complete.

---------------------------------        这是另外一个事务

SQL> update tt set id=3 where id=2;

1 row updated.

SQL> select * from tt;

ID

----------

1

3

SQL> rollback;                --这个事务到这里结束

Rollback complete.

SQL> select * from tt;

ID

----------

1

2

两个问题:

(1).提交的事务是不是就一定会写磁盘里面

不一定  ?  因为系统的读写是异步的,提交了的数据有可能还在脏块列表中,等到有足够多脏块时

DBWn进程才会把一批次的脏块信息写进磁盘。

(2).没有提交的事务是不是就不会写到磁盘

不一定  ?  因为脏块链表的空间有限,如果一次性对数据进行大量的修改,会产生大量的脏块超出脏块

链表的长度,此时 DBWn进程会将脏块信息写进磁盘,如果用户提交了,数据已经写进磁盘,

如果用户进行回滚操作,也没问题,Oracle将会利用undo表空间回滚断的旧镜像将以前的信

息在磁盘中还原回去。

©著作权归作者所有:来自51CTO博客作者forest冯宋林的原创作品,如需转载,请注明出处,否则将追究法律责任

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值