如何杀掉进程oracle 命令杀掉进程
关闭Oracle死锁进程的具体步骤
有效关闭Oracle死锁进程的具体步骤
创新互联建站是一家专业提供翠屏企业网站建设,专注与网站设计制作、成都网站制作、H5响应式网站、小程序制作等业务。10年已为翠屏众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
查哪个过程被锁
查V$DB_OBJECT_CACHE视图:
SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER= 过程的所属用户 AND CLOCKS!= ;
查是哪一个SID 通过SID可知道是哪个SESSION
查V$ACCESS视图:
SELECT * FROM V$ACCESS WHERE OWNER= 过程的所属用户 AND NAME= 刚才查到的过程名 ;
查出SID和SERIAL#
查V$SESSION视图:
SELECT SID SERIAL# PADDR FROM V$SESSION WHERE SID= 刚才查到的SID
查V$PROCESS视图:
SELECT SPID FROM V$PROCESS WHERE ADDR= 刚才查到的PADDR ;
杀进程
( ) 先杀Oracle进程:
ALTER SYSTEM KILL SESSION 查出的SID 查出的SERIAL# ;
IXDBA NET社区论坛
( ) 再杀操作系统进程:
KILL 刚才查出的SPID
lishixinzhi/Article/program/Oracle/201311/19080
如何有效杀掉在linux环境下的oracle进程
一、工具
pl/sql数据库
二、操作步骤
首先通过pl/sql查询到目前长时间活动的进程:
2.选择sessions,得到界面:
3.得到某个SID和serialId.
然后切换到超级用户下面,执行下面下面:select c.spid from v$process c where c.addr=(select b.paddr from v$session b
where b.sid= '15' and b.serial#= '16985') 得到spid. 然后登录到数据库的机器,执行如下命令即完成杀掉oracle进程:
三、注意事项:如果是生产环境,要尽量减少停机时间,让数据库尽快恢复使用。
如何杀死oracle死锁进程
1.查哪个过程被锁
查V$DB_OBJECT_CACHE视图:SELECT*FROMV$DB_OBJECT_CACHEWHEREOWNER='过程的所属用户'ANDLOCKS!='0';
2. 查是哪一个SID,通过SID可知道是哪个SESSION.
查V$ACCESS视图:SELECT*FROMV$ACCESSWHEREOWNER='过程的所属用户'ANDNAME='刚才查到的过程名';
3. 查出SID和SERIAL#
查V$SESSION视图:SELECTSID,SERIAL#,PADDRFROMV$SESSIONWHERESID='刚才查到的SID'查V$PROCESS视图:SELECTSPIDFROMV$PROCESSWHEREADDR='刚才查到的PADDR';
4. 杀进程(1).先杀ORACLE进程:ALTERSYSTEMKILLSESSION'查出的SID,查出的SERIAL#';(2).再杀操作系统进程:KILL-9刚才查出的SPID或ORAKILL刚才查出的SID刚才查出的SPID方法二:经常在oracle的使用过程中碰到这个问题,所以也总结了一点解决方法:)1)查找死锁的进程:sqlplus"/assysdba"SELECT
s.username,l.
OBJECT_ID
,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESSFROMV$LOCKED_OBJECTl,V$SESSIONSWHERE
l.SESSION_ID=
S.SID;2)kill掉这个死锁的进程:altersystemkillsession‘sid,serial#’;(其中sid=
l.session_id)3)如果还不能解决,
selectpro.spidfromv$sessionses,v$processprowhereses.sid=XXandses.paddr=pro.addr;其中sid用死锁的sid替换。
Oracle进程杀不掉怎么办
方法/步骤
1.查询哪些对象被锁:
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
2.杀死进程:
alter system kill session '137,233'; (其中137,223分别是上面查询出的sid,serial#)
PS.以上两步,可通过Oracle的管理控制台来执行。
如果利用上面的方法杀死进程后,进程状态虽被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在OS一级再杀死相应的进程(线程)
1.首先获得进程(线程)号:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=137 (137是上面的sid)
2.在OS上杀死这个进程(线程):
1)在unix上,用root身份执行命令:
#kill -9 12345(即上面查询出的spid)
2)在windows(unix也适用)用orakill杀死线程,例:c:orakill orcl 12345
orakill是oracle提供的一个可执行命令,语法为:orakill sid thread
其中:
sid:表示要杀死的进程属于的实例名
thread:是要杀掉的线程号,即上面查询出的spid。
Oracle进程删除不掉怎么办?
方法/步骤\x0d\x0a1.查询哪些对象被锁:\x0d\x0aselect object_name,machine,s.sid,s.serial# \x0d\x0afrom v$locked_object l,dba_objects o ,v$session s\x0d\x0awhere l.object_id = o.object_id and l.session_id=s.sid;\x0d\x0a\x0d\x0a2.杀死进程:\x0d\x0aalter system kill session '137,233'; (其中137,223分别是上面查询出的sid,serial#)\x0d\x0a\x0d\x0aPS.以上两步,可通过Oracle的管理控制台来执行。\x0d\x0a\x0d\x0a如果利用上面的方法杀死进程后,进程状态虽被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在OS一级再杀死相应的进程(线程)\x0d\x0a\x0d\x0a1.首先获得进程(线程)号:\x0d\x0aselect spid, osuser, s.program \x0d\x0afrom v$session s,v$process p\x0d\x0awhere s.paddr=p.addr and s.sid=137 (137是上面的sid)\x0d\x0a\x0d\x0a2.在OS上杀死这个进程(线程):\x0d\x0a\x0d\x0a1)在unix上,用root身份执行命令: \x0d\x0a#kill -9 12345(即上面查询出的spid)\x0d\x0a\x0d\x0a2)在windows(unix也适用)用orakill杀死线程,例:c:orakill orcl 12345\x0d\x0aorakill是oracle提供的一个可执行命令,语法为:orakill sid thread\x0d\x0a其中:\x0d\x0asid:表示要杀死的进程属于的实例名\x0d\x0athread:是要杀掉的线程号,即上面查询出的spid。
Windows环境中Kill掉Oracle线程
你遇到过下面类似的情况吗?一个用户进程长期占用资源而不释放 导致Oracle进程占用了系统的大量资源 Oralce系统的效率变得很低 如果简单的关闭重启Oracle 实例 势必影响所有的用户 有没有办法仅仅只Kill掉有问题的用户进程而不用关闭整个Oralce实例呢?答案是可以的 使用Oralce提供的一个名叫Orakill的工具 大家都知道 Windows 是一个基于线程的操作系统 而不是象Unix Linux那样基于进程的操作系统 整个Oracle的后台进程 用户进程等 在Windows 环境下 都包含在ORACLE EXE这单独的一个体系进程中了 通过查看 任务管理器 ―― 进程 就可以看到 如果你不是使用MTS多线程服务器的模式 如果你Kill掉ORACLE EXE这个进程 将导致整个Oracle实例关闭 如同使用Shutdown abort命令一样 由于Windows自己没有提过一个专门用来Kill掉单个线程的工具 因此Oracle从Oracle 开始 自己提供了一个基于字符界面的用来在Windows环境下强制Kill掉一个线程的工具――Orakill Orakill的使用方法如下 Dos提示符下:orakill sid thread说明 sid Oracle的Sid号thread Oracle的线程id号在Sql*plus工具里面可以查询到Oracle的线程号sql:Select p spid THREADID s osuser s programsql:From v$process p v$session ssql:Where p addr = s addr结果如下 THREADID OSUSER PROGRAM SYSTEM ORACLE EXE SYSTEM ORACLE EXE SYSTEM ORACLE EXE SYSTEM ORACLE EXE SYSTEM ORACLE EXE SYSTEM ORACLE EXE SYSTEM ORACLE EXE SYSTEM ORACLE EXE PROD_NT\djones SVRMGRL EXE SSMITH PC\s *** ithSQLPLUSW EXE rows selected 需要注意的是 如果你Kill掉的是Oracle的核心后台线程(DBWR LGWR SMON or PMON) 将导致Oracle实例关闭 检查Oracle的核心后台线程的方法如下 sql:Select vb name NOME vp programe PROCESSNAME vp spid THREADID vs sid SIDsql:From v$session vs v$process vp v$bgprocess vbsql:Where vb addr andsql:vb paddr = vp addr andsql:vp addr = vs paddr查询结果如下 NOME PROCESSNAME THREADID SID PMON ORACLE EXE DBW ORACLE EXE LGWR ORACLE EXE CKPT ORACLE EXE SMON ORACLE EXE RECO ORACLE EXE SNP ORACLE EXE SNP ORACLE EXE rows selected lishixinzhi/Article/program/Oracle/201311/18840
标题名称:如何杀掉进程oracle 命令杀掉进程
文章地址:http://scjbc.cn/article/hgches.html