Oracle 鎖機制


本文參考自:ORACLE鎖機制

1、oracle是一個多用戶使用的共享資源,當多個用戶並發的操作同一數據行時,那么在oracle數據庫中就會存在多個事務操作統一數據行的操作,如果不對並發操作進行控制,那么這些事務可能會操作不正確的數據,破壞數據庫的一致性.

 

2、加鎖是是實現數據庫並發控制的一個非常重要的技術,當事務對某個數據對象進行操作時,大致的過程如下:

a、先向系統發出請求

b、在對數據對象進行加鎖

c、最后進行數據操作,這個過程中當前數據對象只有當前事務(當前會話)可以使用,其他事務都不可以使用,直到當前事務釋放鎖,其他事務才可以操作當前數據對象

 

3、Oracle基本的鎖類型:

a、排它鎖(Exclusive locks)即X鎖   

當數據對象被加上排它鎖之后,其他的事務不能對數據對象進行訪問和修改。

b、共享鎖(Share Locks)即S鎖

當數據對象被加上共享鎖之后,其他的事務可以對數據對象進行訪問,但是不能修改。

數據庫通過這兩種基本的鎖類型對數據庫的事務進行並發控制

 

4、Oracle鎖類型

根據鎖保護的對象不同,oralce鎖可以分為以下幾種:

a、DML鎖(data locks)數據鎖

b、DDL鎖dictionary locks,字典鎖 用於保護數據庫對象的結構,如表的結構、索引等

c、內部鎖和閂(internal locks and latches),保護 數據庫的內部結構。

 

5、DML鎖(data locks)數據鎖   介紹

在Oracle數據庫中DML鎖主要是保證並發情況下的數據完整性,DML鎖主要包括TM鎖(表級鎖)和TX鎖(行級鎖或者事務鎖),下面是在Oracle中執行DML語句的加鎖過程

a、系統自動在(DML要操作的表)上申請TM類型的鎖,具體是什么鎖根據操作語句確定

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM