Oracl 發生鎖表--解鎖sql
Oracl 發生鎖表–解鎖sql
整理檔案時,發現了這個檔案,想起了當時在專案測試上線時由於鎖表造成的重大事故,不由地心生感慨,想來還是把這個分享給大家吧。
鎖表原因:
當多個使用者併發地存取資料時,在資料庫中就會產生多個事務同時存取同一資料的情況。若對併發操作不加控制就可能會讀取和儲存不正確的資料,破壞資料庫的一致性。當兩個事務需要一組有衝突的鎖,而不能將事務繼續下去的話,就會出現死鎖,嚴重影響應用的正常執行。
在資料庫中有兩種基本的鎖型別:排它鎖(Exclusive Locks,即X鎖)和共享鎖(Share Locks,即S鎖)。當資料物件被加上排它鎖時,其他的事務不能對它讀取和修改。加了共享鎖的資料物件可以被其他事務讀取,但不能修改。資料庫利用這兩 種基本的鎖型別來對資料庫的事務進行併發控制。
關於共享鎖和排他鎖總結:
1mysql InnoDB引擎預設的修改資料語句,update,delete,insert都會自動給涉及到的資料加上排他鎖,select語句預設不會加任何鎖型別
2排他鎖不能和其他鎖共存
3共享鎖可以和其他鎖共存(由於排他鎖的特性,共享鎖只能和共享鎖共存)
詳見:https://www.cnblogs.com/edgedance/p/6979612.html
--查詢是什麼SQL引起了鎖表的原因,SQL如下:
select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action
from
v$sqlarea a, v$session s, v$locked_object l
where
l.session_id = s.sid
and s.prev_sql_addr = a.address
order by sid, s.serial#;
-- ORACLE中檢視當前系統中鎖表情況 查詢SQL如下:
select object_name,
machine,
s.sid,
serial#
from
v$locked_object l,dba_objects o,v$session s
where
l.OBJECT_ID = o.OBJECT_ID and l.SESSION_ID = s.SID
--列出所有相關資訊
select * from
v$locked_object l,dba_objects o,v$session s
where
l.OBJECT_ID = o.OBJECT_ID and l.SESSION_ID = s.SID
--解鎖語句 SID和Serial#共同確定一唯一的session
alter system kill session 'SID,serial#';
... prompt'''
相關文章
- sql 開發篇一 之 表鎖查詢及解鎖SQL
- sqlserver鎖表、解鎖、檢視銷表SQLServer
- Oracle的鎖表與解鎖Oracle
- ORACLE 鎖表的解決方法及查詢引起鎖表SQL語句[轉]OracleSQL
- ORACLE 鎖表的解決方法及查詢引起鎖表SQL語句方法OracleSQL
- oracle 鎖表、解鎖的語句Oracle
- oracle表鎖住 解鎖辦法Oracle
- MySQL行鎖、表鎖、間隙鎖,你都瞭解嗎MySql
- 全域性鎖、表鎖、行鎖
- 一文搞懂MySQL行鎖、表鎖、間隙鎖詳解MySql
- SQL奇遇記:解鎖 SQL 的秘密SQL
- 關於ORACLE的鎖表與解鎖總結Oracle
- MySQL全域性鎖、表鎖以及行鎖MySql
- 全域性鎖和表鎖
- 鎖表
- InnoDB常用鎖總結(行鎖、間隙鎖、臨鍵鎖、表鎖)
- 如何捕獲和記錄SQL Server中發生的死鎖SQLServer
- 《淺入淺出MySQL》表鎖 行鎖 併發插入MySql
- Mysql鎖之行級鎖和表級意向鎖MySql
- 鎖的種類,阻塞,死鎖產生與解決辦法。
- SQL Server 鎖SQLServer
- MySQL 全域性鎖和表鎖MySql
- oracle 檢視鎖表和解鎖Oracle
- MySQL鎖(讀鎖、共享鎖、寫鎖、S鎖、排它鎖、獨佔鎖、X鎖、表鎖、意向鎖、自增鎖、MDL鎖、RL鎖、GL鎖、NKL鎖、插入意向鎖、間隙鎖、頁鎖、悲觀鎖、樂觀鎖、隱式鎖、顯示鎖、全域性鎖、死鎖)MySql
- Oracle 解決鎖表問題Oracle
- 查詢鎖表 - 誰鎖住了我的表
- MySQL/InnoDB中,樂觀鎖、悲觀鎖、共享鎖、排它鎖、行鎖、表鎖、死鎖概念的理解MySql
- MySQL表鎖MySql
- MySQL -- 表鎖MySql
- 圖解Janusgraph系列-併發安全:鎖機制(本地鎖+分散式鎖)分析圖解分散式
- Apache Kyuubi 助力 CDH 解鎖 Spark SQLApacheSparkSQL
- MySQL索引失效行鎖變表鎖MySql索引
- Java鎖最全詳解:樂觀鎖/悲觀鎖+公平鎖/非公平鎖+獨享鎖/共享鎖Java
- PostgreSQL 併發控制機制(2):表級鎖和行級鎖SQL
- oracle 查詢鎖 && 解鎖Oracle
- Oracle查詢鎖、解鎖Oracle
- SQL Server死鎖SQLServer
- SQL鎖機制SQL