1. 查看oracle是否鎖表之後, 然後如果我沒有DBA許可權 怎麼殺掉進程或者解鎖表
第一種:
SQL>select session_id from v$locked_object;
49
SQL>SELECT sid, serial#, username FROM v$session where sid = 49;
49 554 system
SQL>ALTER SYSTEM KILL SESSION '49, 554';
第二種:
如果用的是客戶端登錄,直接關掉客戶端就可以了,因為你的客戶端也是個session
普通用戶也可以,因為是你這個用戶開啟這個進程,那麼你也可以關閉這個進程
2. Oracle進程刪除不掉怎麼辦
方法/步驟x0dx0a1.查詢哪些對象被鎖:x0dx0aselect object_name,machine,s.sid,s.serial# x0dx0afrom v$locked_object l,dba_objects o ,v$session sx0dx0awhere l.object_id=o.object_id and l.session_id=s.sid;x0dx0ax0dx0a2.殺死進程:x0dx0aalter system kill session 飡,233' (其中137,223分別是上面查詢出的sid,serial#)x0dx0ax0dx0aPS.以上兩步,可通過Oracle的管理控制台來執行。x0dx0ax0dx0a如果利用上面的方法殺死進程後,進程狀態雖被置為"killed",但是鎖定的資源很長時間沒有被釋放,那麼可以在OS一級再殺死相應的進程(線程)x0dx0ax0dx0a1.首先獲得進程(線程)號:x0dx0aselect spid, osuser, s.program x0dx0afrom v$session s,v$process px0dx0awhere s.paddr=p.addr and s.sid=137 (137是上面的sid)x0dx0ax0dx0a2.在OS上殺死這個進程(線程):x0dx0ax0dx0a1)在unix上,用root身份執行命令: x0dx0a#kill -9 12345(即上面查詢出的spid)x0dx0ax0dx0a2)在windows(unix也適用)用orakill殺死線程,例:c:>orakill orcl 12345x0dx0aorakill是oracle提供的一個可執行命令,語法為:orakill sid threadx0dx0a其中:x0dx0asid:表示要殺死的進程屬於的實例名x0dx0athread:是要殺掉的線程號,即上面查詢出的spid。