天天看點

oracle多使用者并發及事務處理

事務:作用于某些資料的一個不可分割的操作

鎖:寫鎖、互斥鎖(僅能被一個程序使用) 讀鎖、共享鎖(可被多個程序使用)

更新丢失

髒讀

不可重複讀

幻影讀

隔離級别:

1 READ COMMITTED 每個語句得到完整的視圖

2 SERIALIZABLE 事務級别實施串行化

Oracle并發特性

1 復原段:存儲“撤銷”資訊的資料結構

redo日志用來記錄資料庫的所有事務;復原段用于提供事務復原和讀一緻性

2 系統改變号 SCN:保證事務執行的順序

3 資料塊中的鎖:每個鎖隻影響資料塊的一行

沖突寫過程:

1 A更新操作

2 擷取SCN,讀取目标資料塊

3 記錄行鎖資訊

4 修改寫入redo日志緩存

5 寫入復原段

6 B更新操作

7 擷取SCN,讀取資料塊

8 發現上鎖,如果是READ COMMITTED 等待執行完成後繼續;如果是SERIALIZABLE,傳回錯誤

9 A送出事務

10 如果B READ COMMITTED,繼續執行

工作空間:與資料的變動分離,建立特定時間版本的資料空間

原子性

一緻性

隔離性

持久性

OLTP通用特性:

1 事務吞吐量大而且并發使用者量大

2 明确的性能需求

3 高可用性

4 可擴充性

通用并發與性能:

1 非更新行鎖技術:隻對事務處理的行加鎖,不将鎖的級别更新到也級别或者表級别

2 多版本讀操作一緻性:在不加讀鎖的情況下保證語句級和事務級的資料一緻性

3 共享SQL:将經過分析和優化的SQL存放在共享記憶體池中的共享SQL區 内

4 存儲概要:支援執行計劃的穩定性

可擴充性:

多線程伺服器MTS

Oracle Net連接配接池:允許用戶端共享一個實體網絡連接配接池

Oracle Net連接配接管理器:為多個客戶配置設定一條網絡連接配接。沒有“逾時”

實時應用程式叢集:

高速緩存熔合:将所有的資料存放在實時應用叢集中的每台主機的每個緩存内,這些資料對于急群衆的其他任意主機都是可用的。

高可用性:

1 備用資料庫:

2 透明故障遷移TAF:主機執行個體失敗時,自動連接配接到另一個oracle執行個體

3 oracle 流/進階隊列 AQ:一種異步或者延期的系統間通信方法

4 Oracle流複制:利用内置的複制功能提供資料備援