多用戶並發訪問
事務:作用於某些數據的一個不可分割的操作
鎖:寫鎖、互斥鎖(僅能被一個進程使用) 讀鎖、共享鎖(可被多個進程使用)
更新丟失
臟讀
不可重復讀
幻影讀
隔離級別:
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流復制:利用內置的復制功能提供數據冗余
