轉載oracle資料庫鎖
ORACLE裡鎖有以下幾種模式:
0:none
1:null 空
2:Row-S 行共享(RS):共享表鎖,sub share
3:Row-X 行獨佔(RX):用於行的修改,sub exclusive
4:Share 共享鎖(S):阻止其他DML操作,share
5:S/Row-X 共享行獨佔(SRX):阻止其他事務操作,share/sub exclusive
6:exclusive 獨佔(X):獨立訪問使用,exclusive
1.oracle提供的所型別可以根據v$lock_type 中的type來查詢,我們平時接觸的最多的是兩種
程式碼如下 複製程式碼
select * from v$lock_type where type in ('TM','TX')
檢視描述,可以大概的得知兩種鎖的資訊.TM是同步訪問物件用的,TX是和事務有關的.
3.要知道的有2個概念:
(1).鎖定資料的鎖,也就是行級鎖,只有一種:排它鎖 exclusive (ROW)
(2).鎖定表上的鎖,即鎖定後設資料的鎖 metadata(table),一共有5種:
2 RS: row share
3 RX: row exclusive
4 S: sha(
5 SRX: share row exclusive
6 X: exclusive4.根據oracle聯機文件的concepts的
我們可以從這個表找出至少2個東西,.第一是每種資料庫操作都對應的是什麼樣的鎖(參考中間那一列),第二是每種鎖之間,如果遇到之後是否會產生衝突,所謂衝突就是是否會使當前的資料庫操作夯住.其中Y*,表示如果兩個操作鎖定的是同一行,那麼就會有衝突,後操作的會等待前一個操作完成之後再完成,否則會一直夯在那兒;如果不為同一行,那麼則不會衝突,後操作的不會等待.舉一個例子來說明:假設現在A操作為:對id=1的記錄進行update,而B操作為:對id=2的記錄進行刪除,根據表格說明,在A上操作時在TM級別的鎖會是RX,TX級別只有一個是X,在B上會有一個TM級別的鎖會是RX,TX級別只有一個X,而根據表格說明,當RX遇到RX的時候,如果2個操作非同一條記錄,那麼則不會衝突,故AB兩個操作均會按照各自的先加一個TM鎖,再加一個TX鎖,再順利執行各自的操作,不會夯住。如果將B操作的記錄id換位1,那麼兩個操作記錄為同一條記錄,在TM鎖上會表現出衝突,所以B操作就會等待A操作完成提交後(也就是A的TX鎖釋放了後),B再相應的生成一個TX鎖和一個TM鎖再完成操作,否則的話會一直夯住,等待A釋放TX鎖.
from:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8568259/viewspace-2100902/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle DG資料庫狀態轉換Oracle資料庫
- Oracle資料庫日期格式轉換操作Oracle資料庫
- ORACLE 資料庫管理員的職責(轉)Oracle資料庫
- oracle資料庫檢視鎖表的sql語句整理Oracle資料庫SQL
- oracle資料庫事務transaction鎖lock模式思考之一Oracle資料庫模式
- oracle資料庫事務transaction 不同的鎖lock型別Oracle資料庫型別
- PowerDesigner連線Oracle逆向生成資料模型(轉載)Oracle模型
- Oracle的過載保護-資料庫資源限制Oracle資料庫
- ORACLE資料加密(轉)Oracle加密
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 「Oracle」Oracle 資料庫安裝Oracle資料庫
- MS SQL Server資料庫事務鎖機制分析(轉)SQLServer資料庫
- Oracle資料庫配置Oracle資料庫
- 資料庫鎖機制資料庫
- oracle資料庫與oracle例項Oracle資料庫
- 「Oracle」Oracle 資料庫基本概念Oracle資料庫
- 「Oracle」Oracle資料庫基本概念Oracle資料庫
- 【轉】ORACLE資料型別Oracle資料型別
- Oracle資料庫-----資料庫的基本概念Oracle資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- 多例項資料庫一個用PSU(轉載)資料庫
- [轉]Oracle資料庫ASH和AWR的簡單介紹Oracle資料庫
- Oracle資料庫關於SQL的執行計劃(轉)Oracle資料庫SQL
- Oracle 資料庫 10g中的分割槽功能(轉)Oracle資料庫
- 資料庫中的共享鎖與排他鎖資料庫
- DataX將MySql資料庫資料同步到Oracle資料庫MySql資料庫Oracle
- oracle下載安裝及PLSQL連線資料庫教程OracleSQL資料庫
- Oracle回應使用者鎖定,自治資料庫是更好選擇Oracle資料庫
- Oracle資料庫閃回Oracle資料庫
- oracle資料庫卡頓Oracle資料庫
- 4.2. Oracle資料庫Oracle資料庫
- Laravel 使用 Oracle 資料庫LaravelOracle資料庫
- MySQL資料庫-鎖詳解MySql資料庫
- MySQL資料庫鎖介紹MySql資料庫
- sqlserver讀取oracle資料庫資料SQLServerOracle資料庫
- oracle資料庫資料字典應用Oracle資料庫
- Oracle資料庫遷移至PolarDb(阿里雲資料庫)Oracle資料庫阿里
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫