首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 找到并终止Oracle9i里被锁定的会话
【标  题】:找到并终止Oracle9i里被锁定的会话
【关键字】:c,Oracle,Oracle9i,9i,Oracle9i
【来  源】:网络

找到并终止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文件之后,你就可以迅速地选择那些要被终止的会话并单独地运行它们。


获得SQL表述式的详细信息:【上一篇】
如何在SQL *Plus中把数据库栏以变量的形式保存:【下一篇】
【相关文章】
  • 在Oracle里使用RAID
  • 用Oracle9i在线表格重定义来重新组织表格
  • 在Oracle9i中计算时间差
  • 在Oracle9i中定义视图约束
  • 跟踪Oracle9i 的CPU和I/O使用代价
  • 从Oracle迁移到SQL Server的陷阱
  • 使用代码刷新ODBC链接SQL SEVER表
  • SQL循序渐进(19)DISTINCT和排除复制
  • SQL循序渐进(9)SELECT语句
  • CorelDraw 10实例教程(一) 举重若轻
  • 【随机文章】
  • C#图片处理之: 另存为压缩质量可自己控制的JPEG
  • JMail 组件
  • Html——框架页的建立
  • 两本不错的ORACLE数据库基础和初级管理文档~
  • C++ 中不能重载的运算符
  • 宽带无线接入用途不同;速率不同
  • 这几天做access + .net2.0项目的一些心得
  • JSP高效分页查询代码
  • [原创]学习专有软件长处,增加开源软件战斗力 - 致Linux诞生15周年
  • DOS操作系统基本使用方法
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.