一次oracle行級鎖導致的問題
發現問題:今天開發同事讓給修改一行資料的某幾個欄位,非常之簡單的操作,確因為對oracle鎖機制的理解不到位導致問題。
我同時用plsql/developer 和CRT兩種工具都連線上了資料庫,然後打算在plsql/developer上update一個欄位,在CRT上update一個欄位(我也不知道當時是怎麼想的,哈哈)然後就莫名其妙的夯住了。。。。。由於自己經驗和學識不足,還傻傻的等待中,還以為是資料量太大呢,原來是鎖的原因,
分析問題:我在plsql/developer是用的system使用者連線的資料庫,而在crt用 sqlplus / as sysdba 連線資料庫,是sys使用者。現在在plsql/developer中update了一個欄位,沒有commit,就直接在CRT上update了另一個欄位,導致後者等待,應為已經有了行級鎖,
解決問題:
.1、 用dba許可權的使用者檢視資料庫都有哪些鎖
alter system kill session '339,13545';
select a.username,a.sid,a.serial#,a.logon_time
from v$locked_object b,v$session a
where b.session_id=a.sid order by a.logon_time;
.2、根據sid檢視具體的sql語句,如果sql不重要,可以kill
select sql_text from v$session a,v$sqltext_with_newlines b
where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
and a.sid=&sid order by piece;
3、kill該事務where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
and a.sid=&sid order by piece;
alter system kill session '339,13545';
然後再次執行update,最好用同一個使用者執行,非常快的執行了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1569954/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上問題排查:記一次 Redis Cluster Pipeline 導致的死鎖問題Redis
- Oracle死鎖一例(ORA-00060),鎖表導致的業務死鎖問題Oracle
- 克隆ORACLE軟體的導致的問題Oracle
- 記一次升級Gradle外掛導致相容問題的解決方案Gradle
- SQL Server 2005遊標的行為變化導致的死鎖問題SQLServer
- 一次JVM記憶體問題導致的線上事故JVM記憶體
- 記一次儲存問題導致的rac故障案例
- ORACLE資料檔名導致的奇怪問題Oracle
- chorme自動升級導致跨域問題ORM跨域
- oracle bug 6825287導致DX鎖等待Oracle
- 執行計劃的偏差導致的效能問題
- 記一次crontab中date命令錯用導致的問題
- MySQL:一次timestamp時區轉換導致的問題MySql
- 記一次 Mac 意外重啟導致的 Homestead 問題Mac
- Oracle資料庫導致效能問題的可能原因Oracle資料庫
- Oracle監聽日誌過大導致的問題Oracle
- RLM$SCHDNEGACTION 執行導致負載問題負載
- Oracle的TX鎖(行級鎖、事務鎖)Oracle
- 完美的執行計劃導致的效能問題
- xcode升級導致cocoapods很多奇葩問題XCode
- 一次心跳網路問題導致的節點新增失敗
- ORA-07445錯誤導致叢集CI鎖的問題分析
- Oracle全部索引丟失導致的效率問題處理Oracle索引
- ANALYZE導致的阻塞問題分析
- MySQL Flush導致的等待問題MySql
- 關於oracle的行級鎖Oracle
- GoldenGate MSSQL Oracle的主鍵問題導致的錯誤GoSQLOracle
- oracle 解鎖的問題Oracle
- 一次錯誤使用 go-cache 導致出現的線上問題Go
- 執行計劃問題導致處理速度時快時慢的問題
- 【Mysql】記一次鎖問題MySql
- WebMagic多執行緒導致註解失效問題Web執行緒
- Laravel 專案一次釋出導致的 BUG(環境變數問題)Laravel變數
- 記錄一次因 mysql 欄位取名不規範導致的問題MySql
- 一次ORACLE SQL謂詞跨界導致的執行計劃不準OracleSQL
- oracle鎖表問題Oracle
- oracle 鎖問題的解決Oracle
- 資料庫不使用悲觀鎖導致問題的一種復現方式資料庫