`
xiaolng
  • 浏览: 31920 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 查表状态

 
阅读更多
Oracle的锁表与解锁  
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT Null

--kill session语句
alter system kill session'50,492';
--以下几个为相关表
SELECT * FROM v$lock;
SELECT * FROM v$sqlarea;
SELECT * FROM v$session;
SELECT * FROM v$process ;
SELECT * FROM v$locked_object;
SELECT * FROM all_objects;
SELECT * FROM v$session_wait;
--1.查出锁定object的session的信息以及被锁定的object名
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;
--2.查出锁定表的session的sid, serial#,os_user_name, machine name, terminal和执行的语句
--比上面那段多出sql_text和action
SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
FROM v$sqlarea a,v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address
ORDER BY sid, s.serial#;
--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;

这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,
任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。
杀锁命令
alter system kill session 'sid,serial#'
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
以下的语句可以查询到谁锁了表,而谁在等待。
以上查询结果是一个树状结构,如果有子节点,则表示有等待发生。
如果想知道锁用了哪个回滚段,还可以关联到V$rollname,其中xidusn就是回滚段的USN
col user_name format a10
col owner format a10
col object_name format a10
col object_type format a10
SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
FROM v$locked_object l,dba_objects o,v$session s
WHERE l.object_id=o.object_id
AND l.session_id=s.sid
ORDER BY o.object_id,xidusn DESC


http://www.cnblogs.com/swcjd/articles/1150893.html
分享到:
评论

相关推荐

    oracle集群管理状态unknown问题

    在深入探讨Oracle RAC(Real Application Clusters)集群管理状态为"unknown"的问题之前,我们首先需要理解Oracle RAC的基本概念及其运作原理。Oracle RAC是Oracle数据库的一种高可用性解决方案,它允许多个数据库...

    监控oracle数据DG状态超详细版

    ********** 实 例 状 态 ****************** on,status,database_status from v$instance; ********** 数 据 库 状 态 ********************* mode from v$database; ********** 控 制 文 件 状 态 ***************...

    DBA相关监控脚本,用于监控Oracle数据库状态的常用语句

    DBA相关监控脚本, 用于监控Oracle数据库状态的常用语句

    Oracle默认用户名与密码速查表.doc

    Oracle 默认用户名与密码速查表是 Oracle 数据库管理系统中一个非常重要的组件。 Oracle 默认用户名与密码速查表提供了 Oracle 数据库中各种默认用户名和密码的信息,这些信息对管理员用户非常重要。 Oracle 默认...

    oracle查看session状态

    自己整理的关于oracle session的状态查看,对新手有一定的帮助,希望您喜欢。

    管理oracle 11gRAC常用命令

    在Oracle 11g RAC环境中,集群状态是非常重要的,因为它直接关系到数据库服务的可用性和稳定性。通过以下命令可以检查集群的整体状态: ```bash [grid@rac02 ~]$ crsctl check cluster ``` 此命令执行后会返回一...

    oracle系统状态trace文件分析器

    oracle系统状态trace文件分析器 当系统hang住时,或者进程间有阻塞时,你可以产生下面两种跟踪文件,一种是进程状态跟踪文件,一种是系统状态跟踪文件:  process state dumps ==> 一个进程的所有对象状态,...

    oracle数据库日常维护

    这包括检查 Oracle 控制文件状态、检查 Oracle 在线日志状态、检查 Oracle 表空间的状态等。 3.1. 检查 Oracle 控制文件状态 检查 Oracle 控制文件状态是了解 Oracle 控制文件状态的重要步骤。可以使用 SQL 语句来...

    ORACLE维护和点检手册

    基础巡检是对 Oracle 数据库的基本状态进行检查,包括检查 Oracle 实例状态、Oracle 在线日志状态、Oracle 表空间状态、Oracle 所有数据文件状态、无效对象、所有回滚段状态、Oracle 服务进程、Oracle 监听状态等八...

    oracle_数据库性能健康检查脚本

    "oracle数据库性能健康检查脚本" Oracle数据库性能健康检查脚本是一种用于检查Oracle数据库性能的工具,帮助DBA快速检查数据库的健康状况。下面是该脚本中涉及到的知识点: 一、操作系统层检查 * 使用ps命令检查...

    Oracle数据库日常维护手册.docx

    管理员可以通过检查对象状态来了解Oracle对象的当前状态,例如控制文件状态、在线日志状态、表空间状态等。 3.1. 检查Oracle控制文件状态 Oracle控制文件状态检查是了解控制文件信息的重要步骤。管理员可以通过...

    oracle 数据库日常维护手册

    在日常维护中,需要定期检查 Oracle 实例的状态,包括检查 Oracle 服务进程、监听状态、系统和 Oracle 日志文件等。通过检查这些信息,可以及时发现数据库中的问题,避免数据库的崩溃。 检查 Oracle 实例状态 检查...

    Oracle数据表与查询

    在IT领域,尤其是在数据库管理与应用中,Oracle作为一款领先的企业级关系数据库管理系统,其数据表与查询功能是核心组成部分。本次将从给定的文件信息出发,深入解析Oracle数据表与查询的关键知识点,旨在为初学者...

    有效关闭Oracle死锁进程,和释放状态为killed的session

    在Oracle数据库管理中,处理死锁进程和释放状态为killed的session是一项关键技能,尤其对于维护数据库性能和稳定性至关重要。以下将详细阐述如何通过一系列步骤有效地关闭Oracle死锁进程,以及如何释放状态为killed...

    一键切换ORACLE服务状态

    涉及到数据库开发的地方经常需要重启服务,反复打开service.msc很麻烦,在次一并实现

    Oracle数据库日常维护手册样本.docx

    在 Oracle 对象状态检查中,数据库管理员需要检查 Oracle 控制文献状态、Oracle 在线日记状态、Oracle 表空间状态、Oracle 所有数据文献状态等,以确保数据库的对象状态的完整性和正确性。此外,还需要检查无效对象...

    Oracle数据库日常检查手册

    ORACLE对象状态检查是数据库管理员日常工作的又一重要组成部分,包括检查ORACLE控制文件状态、ORACLE在线日志状态、ORACLE表空间的状态、ORACLE所有数据文件状态等。这些检查可以帮助数据库管理员了解ORACLE对象的...

    Oracle10g数据库日常维护手册.docx

    本手册涵盖了数据库日常维护的各个方面,包括数据库基本状况检查、系统和ORACLE日志文件检查、ORACLE对象状态检查、ORACLE相关资源使用情况检查等。 一、检查数据库基本状况 数据库基本状况检查是数据库日常维护的...

    Oracle巡检手册.docx

    * 检查Oracle实例状态:检查Oracle实例状态,确保状态为“OPEN”,数据库状态为“ACTIVE”。 * 检查Oracle服务进程:检查Oracle服务进程,确保至少包含以下进程:ora_dbw0_ORCL、ora_lgwr_ORCL、ora_smon_ORCL、ora_...

Global site tag (gtag.js) - Google Analytics