一次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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記一次鎖使用不當導致Dubbo執行緒阻塞問題執行緒
- 線上問題排查:記一次 Redis Cluster Pipeline 導致的死鎖問題Redis
- Oracle死鎖一例(ORA-00060),鎖表導致的業務死鎖問題Oracle
- 分散式鎖導致的超賣問題分散式
- 記一次升級Gradle外掛導致相容問題的解決方案Gradle
- oracle 序列值導致的主鍵衝突問題Oracle
- AdornerDecorator的CacheMode繫結和windows鎖屏導致TableControl鎖死問題Windows
- 記錄一次fs配置導致串線的問題
- 記一次儲存問題導致的rac故障案例
- MySQL:一次timestamp時區轉換導致的問題MySql
- 記一次 Mac 意外重啟導致的 Homestead 問題Mac
- chorme自動升級導致跨域問題ORM跨域
- 記一次crontab中date命令錯用導致的問題
- 一次JVM記憶體問題導致的線上事故JVM記憶體
- Oracle資料傾斜導致的問題-無繫結變數Oracle變數
- Oracle資料傾斜導致的問題-有繫結變數Oracle變數
- ANALYZE導致的阻塞問題分析
- @Transactional 中使用執行緒鎖導致了鎖失效執行緒
- 記一次使用easyexcel匯入excel導致cpu跑滿的問題Excel
- WebMagic多執行緒導致註解失效問題Web執行緒
- 記錄一次因 mysql 欄位取名不規範導致的問題MySql
- 一次錯誤使用 go-cache 導致出現的線上問題Go
- Laravel 專案一次釋出導致的 BUG(環境變數問題)Laravel變數
- Oracle日常問題-臨時表過多導致exp速度慢Oracle
- 資料庫不使用悲觀鎖導致問題的一種復現方式資料庫
- ORACLE DML執行計劃頻繁變更導致業務響應極慢問題的處理Oracle
- MySQL8.0 view導致的效能問題MySqlView
- CAS導致的ABA問題及解決
- golang slice使用不慎導致的問題Golang
- Oracle優化案例-join列索引缺失導致的sql效能問題(二十六)Oracle優化索引SQL
- shell 中的 set -e 導致的退出問題
- MYSQL 5.7 升級 8.0 後的 由於字符集導致的大問題 ?MySql
- 記一次Oracle RAC for aix 儲存雙控鎖盤導致ASM控制檔案損壞恢復OracleAIASM
- Oracle一次“選錯索引”問題的分析Oracle索引
- 記一次 hosts 檔案配置錯誤導致應用卡頓的奇葩問題
- 記一次執行緒池配置導致的ThreadLocal清空執行緒thread
- str_replace導致的注入問題彙總
- [20191204]sqlplus特殊定義導致的問題.txtSQL
- 關於 Laravel mix 導致 Bootstrap 失效的問題Laravelboot