背景
这是当年第一次记录博客,当初记录的原因是感觉有些问题很少碰到,碰到有网上寻找一遍,文章很少是正好对症的,折腾半天终于解决了,但是没有记录过程,结果下次碰到又要从来一次。有的问题还极其不好找,oracle更是存在这个情况。更为主要的是这些年的较重要知识点也没有记录。
主要是前些年主要用的c#,很多问题都没有记录,更为可惜的是delphi,因为用了一年,好容易熟悉了vcl,再没有用过,所以忘得基本差不多了。想起delphi被消灭真是可惜,不过总体来说的确太差,当时一个socket就整蒙圈了,一堆的各种实现方法,真不如c#,简简单单的。不过话说起来,现在c#也是人老珠黄了,它的重要问题是生态不行。我搞了这么多年c#,还是感觉搞java吧。说起来也怪,这些语言都有生命周期,java竟然还长生不老了。
当初刚开始写又有点太简单,这次想详细点。不多说了。说下这个问题,我也忘了当初是什么原因了,好像是表锁住了,这个问题还挺常见。以下有两个解决方法。
步骤
第一种方法:
- select * from v$access 根据object字段找到sid
- select * from v$session 根据sid找到paddr
- select * from v$process 根据paddr对应addr,找到spid
- 到服务器doc下打入orakill.exe ora10g(此为oracle服务名) spid,pid(orakill.exe 目录为D:\oracle\product\10.1.0\db_1\BIN)
第二种方法:
- plsql ---tools--session---窗口根据select * from v$process 根据paddr对应addr,找到spid(pid)
- 然后orakill (此为oracle服务名) spid(pid)
第二种方法好像是多次一举,因为以后又知道了,直接在第一步plsql里就能kill掉session。当然是在plsql还能登陆的情况下,有时锁住了,plsql不能用了,只能用sqlplus了。