发现谁锁定了对象,并kill掉
2007-10-22 09:33
127 查看
1,首先select * from dba_ddl_locks 可以看到都是那些会话锁定了你的对象
2,使用pl/sql developer:tools=>sessions 列出所有会话,仔细查看可疑会话即可
另:select * from v$lock也可以提供一定的信息。
v$session.paddr=v$process.addr
v$session.saddr=v$transaction.sess_addr
从v$process返回的spid列即是你要找的os process id.
Question:
windows下如何kill掉某个进程?操作方法:单击“开始”/程序/附件/命令提示符,输入命令:ntsd -c q -p PID(把最后那个PID,改成你要终止的进程的PID)。在进程列表中你可以查到某个进程的PID,例如我们要关闭图1中的Explorer.exe进程,
输入:ntsd -c q -p 408即可。
Oracle 在Oracle Home/bin 目录下提供了一个 orakill.exe 命令,这个命令的参数与ALTER SYSTEM KILL SESSION 相同,但是不要求数据库连接。要定位一个特定的线程,需
要寻找一个能够显示属于一个进程的所有线程的程序。Windows 任务管理器只能显示线程数和进程。你需要从微软的资源工具包中寻找一个用于 Windows 2000 和 NT 的工具程序,
比如免费的QuickSlice,或者Qslice.exe(该工具是基于 Windows 的),或者PStat(Pstat.exe 是一个命令行工具)。简单地在 orakill 命令后输入线程 ID(以十进制表示)和 SID 即可:
orakill <sid> <spid>
orakill ORCL 2760
"Kill of thread id 2760 in instance ORCL successfully signalled[sic]."
这儿的<sid>是数据库实例名如:orcl,ora10g;
<spid> 可以用下面语句中返回的spid:
select spid, osuser, s.program from v$process p, v$session s where p.addr=s.paddr
应该只有在不能访问数据库来执行ALTER SYSTEM KILL SESSION 的情况才使用orakill。如果意外结束了一个必要的后台进程,比如 PMON,那么很可能会导致数据库崩溃。新手永远不要这样做。
2,使用pl/sql developer:tools=>sessions 列出所有会话,仔细查看可疑会话即可
另:select * from v$lock也可以提供一定的信息。
v$session.paddr=v$process.addr
v$session.saddr=v$transaction.sess_addr
从v$process返回的spid列即是你要找的os process id.
Question:
windows下如何kill掉某个进程?操作方法:单击“开始”/程序/附件/命令提示符,输入命令:ntsd -c q -p PID(把最后那个PID,改成你要终止的进程的PID)。在进程列表中你可以查到某个进程的PID,例如我们要关闭图1中的Explorer.exe进程,
输入:ntsd -c q -p 408即可。
Oracle 在Oracle Home/bin 目录下提供了一个 orakill.exe 命令,这个命令的参数与ALTER SYSTEM KILL SESSION 相同,但是不要求数据库连接。要定位一个特定的线程,需
要寻找一个能够显示属于一个进程的所有线程的程序。Windows 任务管理器只能显示线程数和进程。你需要从微软的资源工具包中寻找一个用于 Windows 2000 和 NT 的工具程序,
比如免费的QuickSlice,或者Qslice.exe(该工具是基于 Windows 的),或者PStat(Pstat.exe 是一个命令行工具)。简单地在 orakill 命令后输入线程 ID(以十进制表示)和 SID 即可:
orakill <sid> <spid>
orakill ORCL 2760
"Kill of thread id 2760 in instance ORCL successfully signalled[sic]."
这儿的<sid>是数据库实例名如:orcl,ora10g;
<spid> 可以用下面语句中返回的spid:
select spid, osuser, s.program from v$process p, v$session s where p.addr=s.paddr
应该只有在不能访问数据库来执行ALTER SYSTEM KILL SESSION 的情况才使用orakill。如果意外结束了一个必要的后台进程,比如 PMON,那么很可能会导致数据库崩溃。新手永远不要这样做。
相关文章推荐
- 查找被长时间锁定的对象并KILL
- Oracle查找被长时间锁定的对象并kill
- oracle 查找被长时间锁定的对象并KILL
- unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,
- 对象的属性访问效率的新发现
- GlobalLock(锁定一个全局内存对象)
- 发现数据对象 -- 数据库开发的关键
- 控制层注入对象 已经注入进去了 在某个方法调用发现为null
- windbg练习,连带发现win7的对象管理ObjectHeader有改变
- ora-04021:等待锁定对象时发生超时
- 咨询业呈红火之势 招聘锁定对象业内人士、MBA
- 因为发现对象名称 'dbo.T3' 和索引名称 'PK__T3__3214EC2706CC942B' 有重复的键,所以 CREATE UNIQUE INDEX 语句终止。重复的键值为 (1)。
- 发现数据对象--数据库开发的关键
- 对象统计信息锁定的解决办法(ORA-20005/ORA-38029)
- (原)测试 Java中Synchronized锁定对象的用法
- 把各种对象(锁定)Pin到windows7系统任务栏中的方法
- 2.2.7锁定非this对象synchronized(this)
- 关于 MSDN 说 Lock 应该用private 对象锁定的测试。
- 详解CorelDRAW中关于锁定与解锁对象的操作
- Java多线程(二) synchronized 针对对象进行锁定