多用戶併發訪問
事務:做用於某些數據的一個不可分割的操做
鎖:寫鎖、互斥鎖(僅能被一個進程使用) 讀鎖、共享鎖(可被多個進程使用)
更新丟失
髒讀
不可重複讀
幻影讀
隔離級別:
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
原子性
一致性
隔離性
持久性
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流複製:利用內置的複製功能提供數據冗餘