kill session遇到ORA-00031錯誤
今天在處理一個表被鎖死的問題時,遇到ORA-00031: 這個階段作業將被標示為要終結的階段作業
具體操作步驟如下:
1. 先確認鎖定資源的session資訊
select OS_USER_NAME,s.MACHINE ,object_name as 物件名稱 ,s.sid,s.serial#,p.spid as 系統程式號
from v$locked_object l , dba_objects o , v$session s , v$process p
where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;
2. kill掉該session
alter system kill session 'sid,serial#'
sid, serial#均為上面SQL語句查詢出的值
但是遇到了ORA-00031: 這個階段作業將被標示為要終結的階段作業錯誤
3.利用命令orakill 殺掉執行緒號
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=40(40為第一條SQL查詢處的sid)
執行命令orakill sid spid(orakill orcl 1612),執行緒號被kill掉,被鎖定的資源得到釋放
--------------------------------
後來在網上查了下,還有類似這樣的命令:tskill pid.
***************
於2009/10/19補充
今天在修改一個儲存過程的時候,發現儲存過程被鎖定了,解決方法:在不知道哪個儲存過程被鎖定的情況下,可用以下語句查詢被鎖定個儲存過程。
select * from V$DB_OBJECT_CACHE where wner= ‘owner_name’ AND LOCKS!='0'
通過查詢v$access表找到sid
SELECT * from v$access where wner=’owner_name’ and bject=’被鎖定的儲存過程’
檢視使用該儲存過程的spid, serial#
select sid,spid,s.serial# from v$session s, v$process p
where s.sid=’從v$access中查到的sid’ and s.paddr=p.addr;
在執行kill session操作即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10314474/viewspace-616708/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Alter system kill session and ORA-00031: session marked for killSession
- [Oracle報錯處理]ORA-00031: session marked for killOracleSession
- ora-00031:session marked for kill處理oracle中殺不掉的鎖SessionOracle
- 要 kill session 例子,session多,報錯如下Session
- ORA-00031:session marked for kill處理oracle中殺不掉鎖的程式SessionOracle
- Oracle的Ora-00031 錯誤Oracle
- 資料庫日誌中Immediate Kill Session錯誤解決方法資料庫Session
- kill sessionSession
- 【kill session】Oracle 徹底 kill session(轉載)SessionOracle
- ORA-00031:session marked for kill(標記要終止的會話)解決方法Session會話
- awk -- kill sessionSession
- Oracle kill sessionOracleSession
- mysql批次kill sessionMySqlSession
- alter system kill sessionSession
- Oracle kill session scriptOracleSession
- oracle_kill_sessionOracleSession
- KILL SESSION 相關Session
- Oracle中Kill sessionOracleSession
- Oracle批量kill sessionOracleSession
- 遇到 ORACLE 錯誤 6550Oracle
- 無腦批量kill sessionSession
- Oracle 徹底 kill sessionOracleSession
- 表鎖定,kill sessionSession
- kill session的學問Session
- Oracle中Kill session [轉]OracleSession
- kill session的測試Session
- disconnect session和kill session的區別Session
- 【會話】Oracle kill session系列會話OracleSession
- Oracle中Kill session的研究OracleSession
- V$SESSION記錄的BLOCKING_SESSION錯誤SessionBloC
- disconnect session和kill session的區別 轉Session
- 開發中遇到的錯誤
- github上傳遇到的錯誤Github
- 批次kill session實現指令碼Session指令碼
- alter system kill session 不成功Session
- 大話Oracle中的kill sessionOracleSession
- 定時kill長事務指令碼kill_long_session.sh指令碼Session
- 安裝.NET Core遇到的錯誤