12
返回列表 发新帖
楼主: ninigirl

如何释放被锁的表

[复制链接]
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32
11#
发表于 2005-1-27 10:26 | 只看该作者
执行了alter system kill session 'sid,serial#' 后,系统要做很多工作,回滚事务很慢的,有的要回滚好几天呢!(可能是BUG)

使用下面语句找出你的想要杀死session的进程id
SELECT  spid FROM V$PROCESS p,V$SESSION s
WHERE p.addr = s.paddr
      and s.USERNAME is not null
      and NVL(s.osuser,'x') <> 'SYSTEM'
      and s.type <> 'BACKGROUND';
(不要忘了加上你的约束条件)

在数据库主机上使用kill -9 spid就可以了,因为进程间共享内存与信号量的处理可能出现问题,不建议使用这种极端方法。

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2006-12-13 16:50:07参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
12#
发表于 2005-1-27 10:28 | 只看该作者
ORA-00031 session marked for kill
Cause: The session specified in an ALTER SYSTEM KILL SESSION command cannot be killed immediately because the session is involved in a non-interruptible operation (for example, rolling back a transaction or being blocked by a network operation). The session has been marked to be killed as soon as possible after the current operation is done.

Action: No action is required for the session to be killed, but further executions of the ALTER SYSTEM KILL SESSION command on this session may cause the session to be killed sooner.

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2006-12-13 16:50:07参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
13#
发表于 2005-1-27 10:29 | 只看该作者
呵呵,够诱惑吧,大伙们要把持住啊:P

使用道具 举报

回复
论坛徽章:
2
会员2006贡献徽章
日期:2006-04-17 13:46:34
14#
发表于 2005-1-27 10:48 | 只看该作者
诱惑,太诱惑,受不了啊!

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2005-1-27 10:53 | 只看该作者
好啦!按照上面几位的方法,解决了,大家就不要过来看了!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
16#
发表于 2005-1-28 00:42 | 只看该作者
最初由 truezxd 发布
[B]执行了alter system kill session 'sid,serial#' 后,系统要做很多工作,回滚事务很慢的,有的要回滚好几天呢!(可能是BUG)

使用下面语句找出你的想要杀死session的进程id
SELECT  spid FROM V$PROCESS p,V$SESSION s
WHERE p.addr = s.paddr
      and s.USERNAME is not null
      and NVL(s.osuser,'x') <> 'SYSTEM'
      and s.type <> 'BACKGROUND';
(不要忘了加上你的约束条件)

在数据库主机上使用kill -9 spid就可以了,因为进程间共享内存与信号量的处理可能出现问题,不建议使用这种极端方法。 [/B]


有理

而且友情提醒:
一般的一个unix os进程,起码的对应一个oracle进程

因此后台kill的时候,注意2个配对进程同时处理,以快速的给你工作带来方便;

而且,上次我们oracle能够正常启动,不能正常停止;搞到oracle,靠,最终建议ipcrm来,玄乎吧,到真的搞定了喔
^_^

但是还是强调,该方法的确极端,不知是否有负面影响,本人没有碰到,或者留心到,不管断言

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32
17#
发表于 2005-1-28 09:19 | 只看该作者
[一般的一个unix os进程,起码的对应一个oracle进程,因此后台kill的时候,注意2个配对进程同时处理,]???
oracle 的server process就是pmon进程fork出来的一个子进程啊!在oracle的概念中就是一个session(当然是在dedicate server mode),没有什么配对进程!!!

关于进程间通讯的编程,共享内存区几乎是每个写server程序人必用的,为了同步,又采用了信号灯、锁等等。

有的锁机制是随着创建它的进程的消亡而消亡,但有的即使创建她的进程消亡了,但它的生命期和主进程一样长久,被它保护的资源即使重新fork一个进程也无济于事,这就是为什么在UNIX系统上的某些程序的子进程死掉重新fork却依旧不好用,最后只能杀掉程序的主进程再重新启动的缘故。

为什么不采用那种锁机制(随着创建它的进程的消亡而消亡)?这种机制的性能太差了,server程序的性能是至关重要的!

楼上的看来已领教过这种server状态了,应该是启动DB时发现无论如何启动不了吧!(如果你没买服务,又不知道用ipcs、ipcrm,重起机器也好用哦!reboot是必杀技。。。。。。)

使用道具 举报

回复
论坛徽章:
6
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-11-04 13:13:52会员2006贡献徽章
日期:2006-04-17 13:46:34在线时间
日期:2006-12-24 04:01:01会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41
18#
发表于 2005-1-28 09:49 | 只看该作者
其实有时候,后台操作系统和数据库之间也有不匹配的地方.
多了解点OS的知识,是必须的.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表