鎖--筆記
鎖:
如果系統平時執行正常,突然停止不動,多半是被阻塞了(blocked),可以首先檢視下v$lock這張檢視:
select sid,type,id1,id2,lmode,request,block from v$lock l where l.block=1;
SID TYPE ID1 ID2 LMODE REQUEST BLOCK
4 TX 524319 1333 6 0 1 --當前持有lmod=6的會話阻塞其他會話
按照Oracle官方文件說明:如果某個SID的request列是一個非0值,那麼它就是在等待一個鎖,如果block列是1,這個SID就是在持有一個鎖,並且阻塞
別人獲得這個鎖。鎖的型別由TYPE欄位定義,鎖的模式由LMODE欄位定義,ID1、ID2欄位定義了這個鎖的相關資訊。
ID1、ID2構成了在事務中回滾段的位置,用處為,當其他操作需要讀取這個資料塊時,它會發現這個塊上要讀取的資料上是有活動的事務,,因此需要
到回滾段中去找它之前的內容。對於TM鎖,ID1值就是加鎖的段的物件,可以是一個表,也可以是一個表的分割槽,此時ID2一般為2.
Lock identifier #2 (depends on type)
---當lock type 為TM時,id1為DML-locked object的object_id
---當lock type 為TX時,id1為usn+slot,而id2為seq。
---當lock type為其它時,不用關注
TM鎖 表級(段)共享鎖 lmod=3持有 不允許使用者對錶做DDL操作
TX鎖 行級排它鎖 Row-X(SX)鎖 lmod=6(X) 在提交前不允許做DML
鎖的級別越高,限制越多。
表1 Oracle的TM鎖型別
鎖模式 鎖描述 解釋 SQL操作
0 none
1 NULL 空 Select
2 SS(Row-S) 行級共享鎖,其他物件只能查詢這些資料行 Select forupdate、Lock for update、Lock row share
3 SX(Row-X) 行級排它鎖,在提交前不允許做DML操作 Insert、Update、Delete、Lock row share
4 S(Share) 共享鎖 Createindex、Lock share
5 SSX(S/Row-X) 共享行級排它鎖 Lock share row exclusive
6 X(Exclusive) 排它鎖 Alter table、Drop able、Drop index、Truncate
鎖是以資料塊的一個屬性存在的,即每個資料塊本身就儲存著自己資料塊中資料的資訊:ITL(Interested Transaction List),凡是這個資料塊上有
活動的事務,資訊就會記錄在這裡面供後續的操作查詢,以保證事務的一致性。
TX並非都是在對資料修改的時候才會產生,只要需要維護事務一致性的時候,就需要用到這個鎖。如分散式事務,一般來說透過dblink在幾個資料庫中
處理資料,因為是分散式的操作方式,所以需要一個事務的總協調者,這時,即使都是讀取操作,依然需要一個TX鎖來維護事務的一致性。
Latch:
是一種輕量級的鎖,不會造成阻塞,只會造成等待。阻塞,是一種系統設計上的問題;等待是一種系統資源爭用的問題。
兩類最常用的Lacth爭用:
共享池中的Latch爭用;資料緩衝池中的Latch爭用。
如果系統平時執行正常,突然停止不動,多半是被阻塞了(blocked),可以首先檢視下v$lock這張檢視:
select sid,type,id1,id2,lmode,request,block from v$lock l where l.block=1;
SID TYPE ID1 ID2 LMODE REQUEST BLOCK
4 TX 524319 1333 6 0 1 --當前持有lmod=6的會話阻塞其他會話
按照Oracle官方文件說明:如果某個SID的request列是一個非0值,那麼它就是在等待一個鎖,如果block列是1,這個SID就是在持有一個鎖,並且阻塞
別人獲得這個鎖。鎖的型別由TYPE欄位定義,鎖的模式由LMODE欄位定義,ID1、ID2欄位定義了這個鎖的相關資訊。
ID1、ID2構成了在事務中回滾段的位置,用處為,當其他操作需要讀取這個資料塊時,它會發現這個塊上要讀取的資料上是有活動的事務,,因此需要
到回滾段中去找它之前的內容。對於TM鎖,ID1值就是加鎖的段的物件,可以是一個表,也可以是一個表的分割槽,此時ID2一般為2.
Lock identifier #2 (depends on type)
---當lock type 為TM時,id1為DML-locked object的object_id
---當lock type 為TX時,id1為usn+slot,而id2為seq。
---當lock type為其它時,不用關注
TM鎖 表級(段)共享鎖 lmod=3持有 不允許使用者對錶做DDL操作
TX鎖 行級排它鎖 Row-X(SX)鎖 lmod=6(X) 在提交前不允許做DML
鎖的級別越高,限制越多。
表1 Oracle的TM鎖型別
鎖模式 鎖描述 解釋 SQL操作
0 none
1 NULL 空 Select
2 SS(Row-S) 行級共享鎖,其他物件只能查詢這些資料行 Select forupdate、Lock for update、Lock row share
3 SX(Row-X) 行級排它鎖,在提交前不允許做DML操作 Insert、Update、Delete、Lock row share
4 S(Share) 共享鎖 Createindex、Lock share
5 SSX(S/Row-X) 共享行級排它鎖 Lock share row exclusive
6 X(Exclusive) 排它鎖 Alter table、Drop able、Drop index、Truncate
鎖是以資料塊的一個屬性存在的,即每個資料塊本身就儲存著自己資料塊中資料的資訊:ITL(Interested Transaction List),凡是這個資料塊上有
活動的事務,資訊就會記錄在這裡面供後續的操作查詢,以保證事務的一致性。
TX並非都是在對資料修改的時候才會產生,只要需要維護事務一致性的時候,就需要用到這個鎖。如分散式事務,一般來說透過dblink在幾個資料庫中
處理資料,因為是分散式的操作方式,所以需要一個事務的總協調者,這時,即使都是讀取操作,依然需要一個TX鎖來維護事務的一致性。
Latch:
是一種輕量級的鎖,不會造成阻塞,只會造成等待。阻塞,是一種系統設計上的問題;等待是一種系統資源爭用的問題。
兩類最常用的Lacth爭用:
共享池中的Latch爭用;資料緩衝池中的Latch爭用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28258625/viewspace-1415754/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 鎖讀書筆記筆記
- MySQL 筆記 - 事務&鎖MySql筆記
- MySQL學習筆記:鎖MySql筆記
- 鎖的總結筆記筆記
- Linux核心自旋鎖使用筆記Linux筆記
- mysql鎖機制 讀書筆記MySql筆記
- OS學習筆記八:死鎖筆記
- [筆記]鎖:各種場景 整理筆記
- MySQL複習筆記(05):MySQL表級鎖和行級鎖MySql筆記
- 蘋果筆記本快速鎖屏教程 Mac怎麼快速鎖屏?蘋果筆記Mac
- java併發筆記之synchronized 偏向鎖 輕量級鎖 重量級鎖證明Java筆記synchronized
- Mysql學習筆記-臨鍵鎖實驗MySql筆記
- win10系統筆記本如何鎖住鍵盤 win10鎖住筆記本鍵盤的方法Win10筆記
- 執行緒關鍵字、鎖、同步集合筆記執行緒筆記
- oracle筆記整理16——表空間利用率、鎖表、鎖包、dbms_job操作Oracle筆記
- 小米手環解鎖MacOS系統筆記本MacBookProMac筆記
- 2.4.1 死鎖的基本概念——作業系統筆記作業系統筆記
- Java 多執行緒學習筆記(五)synchronized 鎖重入Java執行緒筆記synchronized
- java併發筆記之證明 synchronized鎖 是否真實存在Java筆記synchronized
- 多執行緒筆記---鎖(Synchronized)的優化和種類執行緒筆記synchronized優化
- Redis基礎知識(學習筆記2--分散式鎖)Redis筆記分散式
- [每天進步一點點]mysql筆記整理(二):事務與鎖MySql筆記
- Redis學習筆記(三)使用Lua指令碼實現分散式鎖Redis筆記指令碼分散式
- Java程式猿筆記——基於redis分散式鎖實現“秒殺”Java筆記Redis分散式
- JUC併發程式設計學習筆記(四)8鎖現象程式設計筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《六》鎖MySql儲存引擎筆記
- Redis基礎知識(學習筆記22--分散式鎖 Redisson )Redis筆記分散式
- java併發筆記四之synchronized 鎖的膨脹過程(鎖的升級過程)深入剖析Java筆記synchronized
- MySQL記錄鎖、間隙鎖、臨鍵鎖小案例演示MySql
- The art of multipropcessor programming 讀書筆記-3. 自旋鎖與爭用(2)筆記
- 筆記: Oracle 10g中一些操作持有鎖的小節筆記Oracle 10g
- 膝上型電腦鍵盤鎖住了怎麼解鎖 聯想華為惠普戴爾各種筆記本鍵盤解鎖方法介紹筆記
- win10筆記本怎麼鎖自帶鍵盤 win10筆記本禁用自帶鍵盤操作步驟Win10筆記
- 印象筆記 --- 方法分享筆記筆記
- 鍵盤鎖住了fn和什麼鍵能解除 筆記本鍵盤鎖住了按什麼鍵恢復筆記
- 聯想筆記本鍵盤鎖了按什麼鍵解鎖 聯想膝上型電腦突然打不了字筆記
- 筆記本數字鍵盤打不出數字怎麼恢復解鎖筆記
- 大白話聊聊Java併發面試問題之公平鎖與非公平鎖是啥?【石杉的架構筆記】Java面試架構筆記