oracle 體系結構及內存管理 13_事務

一、事務的基本概念
    一組DML語句    insert、delete、update須要同時執行成功或失敗。
    事務結束:COMMIT , ROLLBACK;
    輔助事務回滾一半,批量腳本的時候分批設置
    SAVEPOINT <savepoint_name> ;
    ROLLBACK TO [SAVEPOINT] <savepoint_name> ;
        
二、隱式提交和回滾
    DDL:執行DDL先後系統會自動執行commit
    退出redhat下都是提交的,windows下exit是提交,X掉爲回滾:
        異常退出:X掉窗口
        正常退出:exit
    同一會話死掉後不可能會再生,該會話未提交的事務會被回滾
    要求:任何DML都要顯示的提交或者回滾
    logminer:挖掘出某個事務的全部語句
    
三、事務的ACID屬性
    3.一、原子性(Atomicity),事務語句一塊執行,事務中包含的全部操做要麼都作,要麼都不作。 
         例如:A賬戶向B賬戶劃帳1000,則先將A減小1000,再將B增長1000,這兩個動做要麼都提交,要麼都回退,不可能
        發生一個有效、一個無效的狀況。 
    3.二、一致性(Consistency),事務處理先後數據知足業務一致性狀態。數據必須都知足業務規則約束。 
        例如:A、B賬戶的總金額在轉帳前和轉賬後必須一致,其中的不一致必須是短暫的,在事務提交前纔會出現的。 
    3.三、隔離性(Isolation),B事務不能修改A事務未提交的數據,防止多個事務交叉併發執行致使數據的不一致。 
        例如:在A、B之間轉賬時,C同時向A轉賬,若同時進行則A、B之間的一致性不能獲得知足。因此在A、B事務執行
        過程當中,其餘事務不能訪問(修改)當前相關的數值。 
    3.四、持久性(Durability) ,事務提交後產生的改變永久保存,提交以後數據存放在磁盤中,是永久性的。 sql

四、事務的隔離級別
解鎖並修改密碼
    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 WRITEwindows

五、查出未提交的事務,操做的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;session

參考資料:
http://blog.csdn.net/huazi88888/article/details/8567599併發

相關文章
相關標籤/搜索