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馮宋林的原創作品,如需轉載,請注明出處,否則將追究法律責任
總結
以上是生活随笔為你收集整理的oracle 开始一个事务,oracle的启动与关闭原理-事务commit或者rollback的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle实例没有连到监听上6,ora
- 下一篇: 快疯了。。。想过年买几件衣服去相亲,,伟