問題描述:出現錯誤號為'ora-04021 等待鎖定物件..' 的錯誤資訊
0.以dba身份登入資料庫
一句等於下面三句sql:
select t.name,t2.sid,t2.serial# from v$db_object_cache t
join v$access t1 on t.name = t1.object
join v$session t2 on t1.sid = t2.sid
where t.owner='cwt3_taxi1
'and locks!='0'
and t.name = 'taxi_transaction';
注:黑體下劃線為變數
1.查詢被鎖的資源
select * from v$db_object_cache where owner='cwt3_taxi1' and locks!='0';
2.根據資源名查詢此資源對應的sid
select * from v$access where owner='cwt3_taxi1' and object ='taxi_transaction';
3.根據sid查詢t.serial#
select t.sid,t.serial# from v$session t where t.sid = '496';
4.殺掉此session
alter system kill session '496,26791';(496:sid ; 26791:serial#)
說明:如果在執行第4步的時候,出現"ora-00031 ..." 錯誤,說明你在資料庫中殺不了此程序
1.查詢linux系統中,此資源對應的程序號
select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid = '496';
2.在linux理把它kill掉
檢視程序:ps -ef|more
殺掉程序:kill -9 程序號
5.ok,大功告成
Linux下查殺程序的方法說明
1 查程序 有些平台會對有些引數不支援,這點請注意 比如有的平台支援ps a,有的平台不支援,但是ps x是支援的,比如我當時使用的乙個板子是aml t962e android7.1的板子就出現過這情況。ps 命令查詢與程序相關的pid號 ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。...
確定程序被鎖住的其他資源
確定程序被鎖住的其他資源 if exists select from master.sys.sysprocesses where spid in select blocked from master.sys.sysprocesses begin 確定程序被鎖住的其他資源 select spid 程序...
linux 程序的資源使用
linux核心追蹤每個程序使用的資 比如 堆疊 段 資料段 執行的位置 int getrusage int who struct rusage usage 檢查程序本身,子程序或者兩者之和的資源使用 函式返回乙個usage結構,存放程序使用的資源 usage是很長的linux只用前五項 who指明使...