用oradebug挂起进程
来源:互联网 发布:淘宝远程解锁是真的吗 编辑:程序博客网 时间:2024/05/17 04:24
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: oracle@suk (TNS V1-V3)
2)用pid设置
SQL> oradebug setorapid 10
Unix process pid: 4107, image: oracle@suk (TNS V1-V3)
3、暂停进程执行
SQL> oradebug suspend
Statement processed.
此时,进程号为4107的进程将会处于挂起状态。我们稍后可以重启它。
4、重启进程
重启进程也要先设置进程号:
SQL> oradebug setospid 4107
Oracle pid: 10, Unix process pid: 4107, image: oracle@suk (TNS V1-V3)
SQL> oradebug resume
Statement processed.
注意:不能在会话中suspend当前会话。如果那样做的话,当前会话会被hang,并且不能被其他session resume,只能kill方式关闭。
- 用oradebug挂起进程
- 使用oradebug挂起进程
- Oracle oradebug中止、挂起LGWR进程(Suspend LGWR Process)
- oradebug
- oradebug
- oradebug
- oradebug
- oradebug
- oradebug
- 用oradebug short_stack及strace -p分析oracle进程是否dead或出现故障
- websphere 进程挂起
- 挂起一个进程
- 挂起一个进程
- 进程抢占、阻塞、挂起
- 进程的挂起
- About 进程挂起
- 进程挂起wait_event_interruptible
- 进程的挂起状态
- Compressive Sensing 的相关资源(12-10 Updated)
- Spring JdbcTemplate 就
- body height
- 全面剖析C#正则表达式
- 微软携手WPMind社区合作计划有奖竞猜进行时
- 用oradebug挂起进程
- 关于undefined reference to `inflate'问题解决方法
- 编译的警告:隐式声明与内建函数 ‘malloc’ 不兼容
- I2C driver编写指导一:更新I2C drivers到2.6新驱动模型
- iPhone Programming Tutorial – Creating a ToDo List Using SQLite
- 我的思考与成长
- window 清除我最近的文档记录
- Collections.unmodifiableXX函数使用
- 毕业了。