用oradebug挂起进程-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3977298
  • 博文数量: 536
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(536)

文章存档

2024年(3)

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(252)

2006年(73)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2011-05-19 15:46:29

oradebug可以帮助我们做很多事情,如dump内存信息、设置事件、挂起进程等。本文主要介绍如何使用oradebug挂起进程。


为什么要挂起进程呢?比如因为开发人员对数据库执行一个很大的操作,严重影响了数据库的正常运行,此时你有两个选择:
1、删掉进程
2、暂停进程

实际上,我们往往不能十分确定把进程直接kill掉会造成什么后果,所以暂停进程的执行就是一个比较折中的选择。

要暂停进程步骤很简单:首先找到进程,然后暂停就可以了。

使用oradebug暂停进程时,可以使用pid,也可以使用spid。要找出这些信息有很多方式了,比如可以在操作系统中 ps -ef、可以通过v$session、v$process、v$bgprocess等视图通过关联得到。

下面通过一个例子来说明如何oradebug干预进程的执行状态:

1、找出进程号
本例我们要挂起以用户suk登录的会话:
以sys用户登录查询:

sql> select pid,spid from v$process where addr in (select paddr from v$session where username='suk');

pid spid
---------- ------------
10 4107

2、设置要操作的进程号
有两种方法:
1)用spid设置
sql> oradebug setospid 4107
oracle pid: 10, unix process pid: 4107, image:
(tns v1-v3)
2)用pid设置
sql> oradebug setorapid 10
unix process pid: 4107, image:
(tns v1-v3)

3、暂停进程执行
sql> oradebug suspend
statement processed.

此时,进程号为4107的进程将会处于挂起状态。我们稍后可以重启它。

4、重启进程
重启进程也要先设置进程号:
sql> oradebug setospid 4107
oracle pid: 10, unix process pid: 4107, image:
(tns v1-v3)
sql> oradebug resume
statement processed.

注意:不能在会话中suspend当前会话。如果那样做的话,当前会话会被hang,并且不能被其他session resume,只能kill方式关闭。

阅读(965) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图