oracle怎么杀死进程 oracle杀死进程时权限不足

查看oracle是否锁表之后,然后如果我没有DBA权限 怎么杀掉进程或者解锁表?SQLselect session_id from v$locked_object;
49
SQLSELECT sid, serial#, usernameFROM v$session where sid = 49;
49554system
SQLALTER SYSTEM KILL SESSION '49, 554';
用的是客户端登录,直接关掉客户端就可以了,因为你的客户端也是个session
普通用户也可以,因为是你这个用户开启这个进程,那么你也可以关闭这个进程 。
3.尽量用dba权限的用户操作,还有可以到主机上 kill -9 spid 会更快 。
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如何解锁?一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放 , 有时实在没办法,只好重启数据库 。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀 。\x0d\x0a1.下面的语句用来查询哪些对象被锁:\x0d\x0aselectobject_name,machine,s.sid,s.serial#\x0d\x0afromv$locked_objectl,dba_objectso,v$sessions\x0d\x0awherel.object_id=o.object_idandl.session_id=s.sid;\x0d\x0a2.下面的语句用来杀死一个进程:\x0d\x0aaltersystemkillsession'24,111';(其中24,111分别是上面查询出的sid,serial#)\x0d\x0a【注】以上两步,可以通过Oracle的管理控制台来执行 。\x0d\x0a3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:\x0d\x0aselectspid,osuser,s.program\x0d\x0afromv$sessions,v$processp\x0d\x0awheres.paddr=p.addrands.sid=24(24是上面的sid)\x0d\x0a4.在OS上杀死这个进程(线程):\x0d\x0a1)在unix上,用root身份执行命令:\x0d\x0a#kill-912345(即第3步查询出的spid)\x0d\x0a2)在windows(unix也适用)用orakill杀死线程 , orakill是oracle提供的一个可执行命令,语法为:\x0d\x0aorakillsidthread\x0d\x0a其中:\x0d\x0asid:表示要杀死的进程属于的实例名\x0d\x0athread:是要杀掉的线程号,即第3步查询出的spid 。\x0d\x0a例:c:orakillorcl12345
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 。
如何杀死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"
SELECTs.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESSFROMV$LOCKED_OBJECTl,V$SESSIONSWHEREl.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]使用sid和sessionid杀死进程select session_id from v$locked_object;
SELECT sid, serial#, username, osuser FROM v$session where sid = 71;
ALTER SYSTEM KILL SESSION '71,1089';
【oracle怎么杀死进程 oracle杀死进程时权限不足】oracle怎么杀死进程的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于oracle杀死进程时权限不足、oracle怎么杀死进程的信息别忘了在本站进行查找喔 。

    推荐阅读