oracle常用的数据库锁定语句

来源:互联网 发布:nt数据看宝宝男女最准 编辑:程序博客网 时间:2024/06/05 19:37
--查看是否有被锁定的内容 
SELECT A.OWNER 方案名,
       A.OBJECT_NAME 表名,
       B.XIDUSN 回滚段号,
       B.XIDSLOT 槽号,
       B.XIDSQN 序列号,
       B.SESSION_ID 锁表SESSION_ID,
       B.ORACLE_USERNAME 锁表用户名,
       decode(D.type,
              'XR',
              'NULL',
              'RS',
              'SS(Row-S)',
              'CF',
              'SS(Row-S)',
              'TM',
              'TABLE LOCK',
              'PW',
              'TABLE LOCK',
              'TO',
              'TABLE LOCK',
              'TS',
              'TABLE LOCK',
              'RT',
              'ROW LOCK',
              'TX',
              'ROW LOCK',
              'MR',
              'S(Share)',
              NULL) 锁定方式,
       C.MACHINE 用户组,
       C.TERMINAL 机器名,
       B.OS_USER_NAME 系统用户名,
       B.PROCESS 系统进程id,
       DECODE(C.STATUS, 'INACTIVE', '不活动', 'ACTIVE', '活动') 活动情况,
       C.SERVER,
       C.SID,
       C.SERIAL#,
       C.PROGRAM 连接方式,
       C.LOGON_TIME
  FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C, v$lock d
 WHERE (A.OBJECT_ID = B.OBJECT_ID)
   AND (B.PROCESS = C.PROCESS)
   and C.sid = d.sid
   and B.LOCKED_MODE = D.LMODE

 ORDER BY 1, 2;

三、Kill session  
--1、 使用如下语句a查看一下认谁在用临时段  
SELECT se.username,
       se.SID,
       se.serial#,
       se.sql_address,
       se.machine,
       se.program,
       su.TABLESPACE,
       su.segtype,
       su.CONTENTS
  from v$session se, v$sort_usage su
 WHERE se.saddr = su.session_addr


--2、kill正在使用临时段的进程 
Alter system kill session 'sid,serial#'; 


--3、把TEMP表空间回缩一下 

Alter tablespace TEMP coalesce;  


0 0