`

ORA-00031

 
阅读更多

一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,

有时实在没办法,只好重启数据库。但是shutdown immediate又怕可能进程杀不掉会一直

停留在shutdown immediate,直接shutdown abort又怕损坏数据库。 

现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。

--1.下面的语句用来查询哪些对象被锁: 
SELECT S.USERNAME,S.OSUSER,S.SID,S.SERIAL#,P.SPID FROM V$SESSION S,V$PROCESS 
P WHERE S.PADDR=P.ADDR AND S.USERNAME IS NOT NULL; 

--2.下面的语句用来杀死一个进程: 
alter system kill session 'sid,serial#';

--【注】以上两步,可以通过Oracle的管理控制台来执行。
--如果出现题目的错误,可以
select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b 
where a.addr=b.paddr and b.status='KILLED' ;

--3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间
--没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程
--(线程)号:
select spid, osuser, s.program from v$session s,v$process p where 
s.paddr=p.addr and s.sid=33 (33就是上面的sid)

 4.在OS上杀死这个进程(线程):

1)在unix上,用root身份执行命令:

#kill -9 12345(即第3步查询出的spid)

2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,

语法为:

orakill sid thread

其中:

sid:表示要杀死的进程属于的实例名

thread:是要杀掉的线程号,即第3步查询出的spid。

例:c:>orakill orcl 12345

Ps:这里要注意的是kill OS进程是在服务端操作,而不是你程序所在客户机。

C:\Users\Administrator>set Oracle_SID=orclyxkj   

C:\Users\Administrator>orakill orclyxkj 4520    --这个4520是步骤4中查出来的    

Kill of thread id 4520 in instance orclyxkj successfully signalled.   

C:\Users\Administrator>  

到这里,进程就杀掉了。再查询,进程应该没有了。

注意6中如果在本机客户端执行,

会报这个错:

C:\Documents and Settings\Administrator>set Oracle_SID=orclyxkj   

C:\Documents and Settings\Administrator>orakill orclyxkj 4520   

Could not attach to Oracle instance orclyxkj: err = 2

分享到:
评论

相关推荐

    ORA-00031:标记要终止的会话

    在处理Oracle数据库时,我们经常遇到错误代码ORA-00031,它表明指定的会话已经被标记为终止。这个错误通常与数据库锁定和会话管理有关。本文将详细解析这一问题的解决方案,并提供一系列SQL语句和命令来处理和解决...

    oracle ORA-00031:session marked for kill(标记要终止的会话)解决方法

    Oracle数据库在操作过程中,有时会遇到ORA-00031错误,这个错误提示是“会话标记为kill(session marked for kill)”。这通常发生在使用ALTER SYSTEM KILL SESSION命令企图终止某个会话时,但由于会话正在执行无法...

    ORA错误中文描述(包括所有)

    #### ORA-00031: 需要删除用户 如果系统检测到必须删除某个用户才能继续执行某些操作时,将出现此错误。解决方法通常是按照提示删除指定的用户。 #### ORA-00032: 无效用户 当用户账号因某种原因(如密码过期、...

    oracle报错大全(珍藏版)

    #### ORA-00031: Need to Remove Lock 需要移除锁时触发。这可能是因为应用程序逻辑错误,导致锁未能正常释放。 #### ORA-00032: Invalid Lock 使用了无效的锁时触发。这可能是因为锁已失效或从未存在过。 #### ...

    Oracle错误代码大全

    * ORA-00031: 标记要删去的会话 * ORA-00032: 无效的会话移植口令 * ORA-00033: 当前的会话具有空的移植口令 * ORA-00034: 无法在当前 PL/SQL 会话中 二、资源错误 * ORA-00050: 获取入队时操作系统出错 * ORA-...

    oracle报错的详细列表

    #### ORA-00031: 标记要删去的会话 当会话被标记为待删除状态时触发。 #### ORA-00032: 无效的会话移植口令 当提供的会话移植口令无效时触发。 #### ORA-00033: 当前的会话具有空的移植口令 当当前会话的移植口令...

    Oracle error code 大全

    ORA-00031:标记要删去的会话 ORA-00032:无效的会话移植口令 ORA-00033:当前的会话具有空的移植口令 ORA-00034:无法在当前 PL/SQL 会话中 进程管理错误 ORA-00018:超出最大会话数 ORA-00019:超出最大会话许可...

    2号店 商城 系统

    ORA-00031: 标记要删去的会话 ORA-00032: 无效的会话移植口令 ORA-00033: 当前的会话具有空的移植口令 ORA-00034: 无法在当前 PL/SQL 会话中 ORA-00035: LICENSE_MAX_USERS 不能小于当前用户数 ORA-00036: 超过...

    oracle常见错误及解决方法

    5. ORA-00030, ORA-00031: 用户会话ID不存在或标记要删除的会话 这些错误可能是因为会话已被删除或无效。解决方法是重新连接或检查会话标识是否正确。 6. ORA-00032, ORA-00033, ORA-00034: 会话认证问题 错误...

    oracle表被锁定的完美解决方法

    ora-00031:session marked for kill处理oracle中杀不掉的锁一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那...

    oracle错误一览表

    当会话被标记为删除,但仍在运行关键任务时,会触发ORA-00031错误。需要等待任务完成或采取措施安全地中止会话。 ### ORA-00032: 无效的会话移植口令 在尝试移植会话时使用了无效的口令,会触发ORA-00032错误。...

    Oracle错误代码大全.pdf

    16. ORA-00031: 标记要删除的会话错误,可能是因为会话状态异常。 17. ORA-00032: 无效的会话移植口令,口令验证失败。 18. ORA-00033: 当前会话具有空的移植口令,这意味着迁移过程中口令信息缺失。 19. ORA-...

    oracle错误代码大全

    16. ORA-00031: 请求标记会话删除,但必须由特定权限执行。 17. ORA-00032: 提供的会话移植口令无效,可能与身份验证有关。 18. ORA-00033: 当前会话的移植口令为空,需要设置或更新口令。 19. ORA-00034: 无法在...

    Oracle错误代码大全[借鉴].pdf

    16. ORA-00031: 标记要删除的会话,这是一个操作过程中的错误,可能与并发操作有关。 17. ORA-00032: 无效的会话移植口令,意味着登录密码错误或已更改。 18. ORA-00033: 当前会话具有空的移植口令,表示口令未...

    ORACLE错误代码文档

    16. ORA-00031: 标记要终止的会话 会话被标记为需要终止,但可能仍在执行操作,需要等待其完成或强制结束。 17. ORA-00032: 无效的会话移植口令 用于迁移会话的口令无效或不正确。 18. ORA-00033: 当前的会话...

    Oracle错误一览表汇编.docx

    15. ORA-00031: 标记要删去的会话 会话被标记为删除,但实际操作未完成。 16. ORA-00032: 无效的会话移植口令 移植会话时提供的口令无效。 17. ORA-00033: 当前的会话具有空的移植口令 会话没有设置移植口令,迁移...

    oracle错误代码详细的总结与分析.docx

    16. **ORA-00031: 标记要删去的会话:** 标记为删除的会话操作不正确。 17. **ORA-00032: 无效的会话移植口令:** 迁移会话时,提供的口令无效或不匹配。 18. **ORA-00033: 当前的会话具有空的移植口令:** 会话没有...

Global site tag (gtag.js) - Google Analytics