视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle杀掉系统进程的描述
2020-11-09 07:38:04 责编:小采
文档


Oracle杀掉系统进程的描述 2012-01-18 00:00 中国IT实验室 佚名 在导入附件表AFFIX的时候,数据量很小就1w多条数据,但是AFFIX中有一个blob的大字段,这就使得查询起来很慢,因为工作的环境网络特别的不稳定,开始导入了大概快一半了,突然网络断了,当时真

Oracle杀掉系统进程的描述

2012-01-18 00:00中国IT实验室佚名


  在导入附件表AFFIX的时候,数据量很小就1w多条数据,但是AFFIX中有一个blob的大字段,这就使得查询起来很慢,因为工作的环境网络特别的不稳定,开始导入了大概快一半了,突然网络断了,当时真的很生气,但是也没有什么办法,网络好后接着导入此时总是出现导入错误、甚至导入了很长时间,数据条数根本没发生变化,就是这样的反反复复,查看了一下Oracle锁表的情况:

  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;

  结果就看到如下结果:

  果然有表锁死了,心想kill掉锁死的表很简单,命令如下:

  alter system kill session '519,10230';

  执行的时间很长,后来居然出现了下图的错误:

  一看就是报错了,查了一些资料是因为oracle锁死的表被杀死后,状态被标识为“killed”但是锁定资源很长时间才能得到释放,有的时候实在没有别的好的办法我们就需要重启数据库了,我的理解是如果等半天或者更长时间的话是可以被释放的。于是就开始查询资料、例子,解决办法如下:

  SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='519' --被锁定的SID

  此时可以得到 PADDR ,在通过SQL得到:

  SELECT SPID FROM V$PROCESS WHERE ADDR='695E3F2C'; --PADDR的值

  这个时候就可以直接在系统中把oracle进程杀掉了,可以使用 kill -9 SPID 或者 ORAKILL SID SPID

  此时整个操作完成,如果遇到此类问题不能解决大家在一起讨论。

下载本文
显示全文
专题