oracle 开始一个事务,oracle的启动与关闭原理-事务commit或者rollback
oracle的啟動與關(guān)閉原理-事務(wù)commit或者rollback
4、事務(wù)
4.1事務(wù)的概念
從第一個DML語句開始執(zhí)行,以rollback或者commit為結(jié)束標(biāo)記,之前所有的DML操作(insert,update,delete )都是屬于這個事務(wù)的范圍內(nèi)。
4.2 事務(wù)的提交操作
(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)創(chuàng)建一個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;?? ??? ?--這是一個事務(wù)的結(jié)束
Commit complete.
---------------------------------?? ??? ?這是另外一個事務(wù)
SQL> update tt set id=3 where id=2;
1 row updated.
SQL> select * from tt;
ID
----------
1
3
SQL> rollback;?? ??? ??? ??? ?--這個事務(wù)到這里結(jié)束
Rollback complete.
SQL> select * from tt;
ID
----------
1
2
兩個問題:
(1).提交的事務(wù)是不是就一定會寫磁盤里面
不一定? ?? 因為系統(tǒng)的讀寫是異步的,提交了的數(shù)據(jù)有可能還在臟塊列表中,等到有足夠多臟塊時
DBWn進(jìn)程才會把一批次的臟塊信息寫進(jìn)磁盤。
(2).沒有提交的事務(wù)是不是就不會寫到磁盤
不一定? ?? 因為臟塊鏈表的空間有限,如果一次性對數(shù)據(jù)進(jìn)行大量的修改,會產(chǎn)生大量的臟塊超出臟塊
鏈表的長度,此時 DBWn進(jìn)程會將臟塊信息寫進(jìn)磁盤,如果用戶提交了,數(shù)據(jù)已經(jīng)寫進(jìn)磁盤,
如果用戶進(jìn)行回滾操作,也沒問題,Oracle將會利用undo表空間回滾斷的舊鏡像將以前的信
息在磁盤中還原回去。
?著作權(quán)歸作者所有:來自51CTO博客作者forest馮宋林的原創(chuàng)作品,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
總結(jié)
以上是生活随笔為你收集整理的oracle 开始一个事务,oracle的启动与关闭原理-事务commit或者rollback的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle实例没有连到监听上6,ora
- 下一篇: oracle网站注入,oracle注入,