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

2022-02-05 15:12:45 字數 1376 閱讀 6451

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

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

更新丟失

髒讀不可重複讀

幻影讀隔離級別:

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流複製:利用內建的複製功能提供資料冗餘

LR 多使用者多業務併發

使用lr錄製指令碼時,有很多方法都可以模擬使用者的真實使用狀態,例如 1 lr think time 函式的使用可以模擬使用者瀏覽的操作 2 模擬network speed runtime setting下的network speedsimulation 可以模擬使用者訪問速度為最大頻寬 自定義頻寬...

git多使用者管理及許可權控制

用過svn的朋友都知道,每個開發者都需要乙個svn賬號,通過這個檢視專案的提交記錄,可以更加清楚專案的開發情況,便於版本控制。git也是如此。所以我們說其實git在很多方面和svn是很相識的。提到使用者,那麼使用者的管理和許可權控制就是避不開的話題了。一.新建使用者 新增git賬號其實就是新增乙個系...

併發操作 多使用者併發操作的解決方案

問題 在以前的系統開發中,經常遇到乙個同樣問題,就是多個使用者同時併發操作一條記錄,這次在交易系統開發過程中,又出現了這樣問題。比如交易商a提交單子,由審核人員b審核,此時a正在修改單位,b也正在檢視這條記錄,a先修改儲存後b再審核儲存,導致b審核通過的記錄不是他所看到的。分析 仔細考慮問題,大概分...