找到并终止Oracle9i里被锁定的会话

由于Oracle有内部锁定(的机制),因此有些时候它对于找到并终止Oracle里锁定数据库资源的会话很有用。首先,你需要找到所有的Oracle会话。下面是一段脚本,用来显示Oracle内所有会话的细节。  

remsession.sql - displays all connected sessions
set echo off;
set termout on;
set linesize 80;
set pagesize 60;
set newpage 0;

select
   rpad(c.name||':',11)||rpad(' current logons='||
   (to_number(b.sessions_current)),20)||'cumulative logons='||
   rpad(substr(a.value,1,10),10)||'highwater mark='||
   b.sessions_highwater Information
from
   v$sysstat a,
   v$license b,
   v$database c
where
   a.name = 'logons cumulative'
;

ttitle "dbnameDatabase|UNIX/Oracle Sessions";

set heading off;
select 'Sessions on database '||substr(name,1,8) from v$database;
set heading on;
select
   substr(a.spid,1,9) pid,
   substr(b.sid,1,5) sid,
   substr(b.serial#,1,5) ser#,
   substr(b.machine,1,6) box,
   substr(b.username,1,10) username,
   substr(b.osuser,1,8) os_user,
   substr(b.program,1,30) program
from
   v$session b,
   v$process a
where
   b.paddr = a.addr
and
   type='USER'
order by
   spid;
ttitle off;
set heading off;
select 'To kill, enter SQLPLUS>  ALTER SYSTEM KILL SESSION',
''''||'SID, SER#'||''''||';' from dual;
spool off;

Tue Mar 19                                                             page   11
                                dbname Database
                              UNIX/Oracle Sessions

PID       SID   SER#  BOX    USERNAME   OS_USER  PROGRAM
--------- ----- ----- ------ ---------- -------- ------------------------------
6230      51    251   MWC\CO APPS       TEilers  S:\ORANT\BIN\F50RUN32.EXE
6233      69    2729  MWC\CO APPS       TEilers  S:\ORANT\BIN\R30RBE32.exe
6823      75    661   corp-h APPS       applmgr  f45runm@corp-hp1 (TNS V1-V3)
6823      85    317   corp-h APPS       applmgr
779       122   1307  corp-h APPS       applmgr
9322      116   242   45A_10 APPS       lmichel  F50RUN32.EXE
9330      67    440   corp-h APPS       applmgr

一旦我们找到了Oracle里所有的会话,那么下一步就是运行一个脚本来检测所有已经被锁定的会话。这是因为,Oracle可能无法以足够快的速度检测到一个不活动(dead)的会话,用以防止对数据访问的阻断(blockage)。你可以运行下面的脚本以定位那些管制着锁定资源的会话。

select
   sess.sid,
   sess.serial#,
   lo.oracle_username,
   lo.os_user_name,
   ao.object_name,
   lo.locked_mode
from
   v$locked_object lo,
   dba_objects     ao,
   v$session       sess
where
   ao.object_id = lo.object_id
and
   lo.session_id = s.sid;

Tue Mar 19                                                             page    1
                                     Locked
                                    objects

            Oracle     OS         Object
  sid  ser# user       User       Name                           LOCKED_MODE
----- ----- ---------- ---------- ------------------------------ -----------
   21    56 APPS       applmgr    FND_CONCURRENT_REQUESTS                  2
   77   535 APPS       applmgr    MTL_SYSTEM_ITEMS                         2
  126   161 APPS       oracle     SO_LINES_ALL                             2

一旦定位了已锁定的会话,你就可以使用下面的脚本来自动地创建ALTER SESSION句法,用来终止你所希望终止的会话,这样就能够将锁定的会话从Oracle里清除掉。

spoolrun_nuke.sql

select
   'alter system kill session '''||
    sess.sid||', '||sess.serial#||';'
from
   v$locked_object lo,
   dba_objects     ao,
   v$session       sess
where
   ao.object_id = lo.object_id
and
   lo.session_id = s.sid;

在创建完run_nuke.sql文件之后,你就可以迅速地选择那些要被终止的会话并单独地运行它们。

时间: 2024-12-23 04:41:11

找到并终止Oracle9i里被锁定的会话的相关文章

服务端群发消息,app里没有聊天记录,会话列表也收不到 已发的联系人消息

问题描述 问题情况:1. 用户关系: 会员 和 商家(只能后台web端聊天),陌生人关系,会员在app端和商家在后台web端聊天2. 单聊都么问题.就是我们会员在app提交群发消息给服务端后,服务端发到环信,后台web端能显示我们提交的消息.那说明我们的服务端发送应该是可以的,但是就是app端不能收到环信的消息,比如IOS有写EMChatManagerDelegate协议,[[EMClient sharedClient].chatManager addDelegate:self delegate

不同系统中锁定桌面的方法

一.怎样锁定桌面墙纸 1.右击"我的电脑",依次单击"属性/高级/性能设置"在"视觉效果"页中将"在桌面上为图标标签使用阴影"选中,单击确定即可. 2.右键桌面空白处右击,在"排列图标"里去掉"锁定桌面的web项目" 3.有时会出现上述设置也不能解决问题,我们就可以通过新建一个用户的办法解决,但桌面图标.快速启动栏以及环境变量等 等设置会恢复为默认状态,需要重新设置.(一般不用这项) 4

win7系统下快速锁定BitLocker的窍门

很多用户不知道BitLocker是什么,BitLocker其实是驱动器加密程序,它使用TPM可以帮助我们保护数据安全,确保计算机信息不被篡改.可是这个程序也有不够完美的地方,就是第一次输入密码解锁分区以后,没有办法再次上锁,需要先重启win7系统,才能够再次上锁.下面小编就告诉大家不用重启win7系统锁定BitLocker的技巧. 在不需重启win7系统的前提下再次锁上Bitlocker,我们可开启运行框以"manager-bde -lock K:"(K是代表用户想上锁的分区盘符)命令

InnoDB 中文参考手册 --- 8 InnoDB 事务模式与锁定

参考|参考手册|中文 InnoDB 中文参考手册 --- 犬犬(心帆)翻译 8 InnoDB 事务模式与锁定在 InnoDB 事务处理模式中, the goal has been to combine the best properties of a multiversioning database to traditional two-phase locking. InnoDB 进行行级的锁定,并以与 Oracle 非锁定读取(non-locking)类似的方式读取数据. InnoDB 中的锁

win7系统资源管理器图标不被锁定在任务栏怎么解决

  win7系统资源管理器图标不被锁定在任务栏怎么解决 1.打开系统盘下的Windows文件夹,找到资源管理器,将其锁定到任务栏; 2.右键选择任务栏上的资源管理器快捷方式,再右键选择"Windows 资源管理器",打开"属性".在"属性"中"目标"一栏中粘贴引号内的代码:"%windir%explorer.exe ,"; 3.确定以上操作后,恢复完成.

Win7下快速找到“本地连接”

习惯了Windows XP操作方式的用户,在一接触到Windows 7时,有很多桌面功能看上去总是闲得很陌生.比如在Windows XP中,"网络连接"属性窗口中可以直接看到"本地连接"的图标,但在Windows 7中,如果你不是很细心,一时半会儿你还真就难以找到. IE打不开,或者是打开速度很慢,再或者是能上QQ,但是无法打开IE.遇到此类网络问题,有经验的用户,都会习惯性的先查看系统网络连接有无异常.但在Windows 7系统下,不是很熟悉它的用户,往往难以快速

debian 桌面,笔记本锁定指示灯亮了,啥原因,咋处理?

问题描述 debian 6.0.1桌面系统,本来用的好好的, 今天,开机一会儿我的ASUA笔记本硬盘右临的一个指示灯就亮了,屏幕灰色,鼠标还在,啥都不动了,只有关机那个灯画的一个锁,里面有个字母A我用的是双系统,WIN下是没有问题的,一切正常,温度也不高啊啥情况,咋处理?  问题补充:<div class="quote_title">suziwen 写道</div><div class="quote_div">看看系统日志有什么异

塑化剂:终止日难终止

本报记者 陈晓星 吴亚明 5月31日是台湾"卫生署"宣布的塑化食品终止日,即使用起云剂的五大类食品,包括运动饮料.果汁.茶饮.糖浆果浆及胶.锭(片)等,5月31日起必须出示检验合格报告才能上架销售,否则将根据台湾<食品卫生管理法>开罚.在此之前,很多商店.企业都以"不知情"喊冤,强调自己也是受害者. 5月23日,台"卫生署"召开记者会证实,台湾销售的饮料.乳酸菌.果酱等发现用于塑料生产的塑化剂,自此,塑化剂雪球越滚越大,马英九称,食品

云龙:让你真正了解SEO到底是怎么运作的

最近2个月一直在研究关于SEO,还是外链内链那点事,笔者网站也放置在那里了一段时间,前段时间遇到了我6年前认识的一位站长朋友,通过跟他学习笔者明白了一些道理,以及学习到许多没有过的实践经验.. 大多数站长应该都明白,网站越多越大,有的也就是越做不大网站就只能停息在那一步,总是没什么大的成果.其实很简单,我们多数站长都存在一种弊病,这也是许多站长磕磕绊绊做那么长时间网站一点起色都没有的原因.. 网站的建设当然少不了SEO的优化了,可是我们如何去优化?网上找了无数篇资料,你真正理解了多少?其实我想应