您的位置:首页 > 数据库 > Oracle

Oracle DBA脚本管理工具2

2009-08-23 20:10 387 查看
1、查看数据库中的表锁

脚本说明:这方面的语句的样式是很多的,各式一样,不过我认为这个是最实用的,不信你就用一下,无需多说,锁是每个DBA一定都涉及过的内容,当你相知道某个表被哪个session锁定了,你就用到了这个脚本。

SELECT A.OWNER, A.OBJECT_NAME, B.XIDUSN, B.XIDSLOT, B.XIDSQN,

    B.SESSION_ID, B.ORACLE_USERNAME, B.OS_USER_NAME,

    B.PROCESS, B.LOCKED_MODE, C.MACHINE, C.STATUS,
      C.SERVER, C.SID, C.SERIAL#, C.PROGRAM
FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C
WHERE ( A.OBJECT_ID = B.OBJECT_ID )
AND (B.PROCESS = C.PROCESS )
ORDER BY 1,2;

 

使用说明:分别用sys和scott帐户登录,在scott帐户中运行select * from emp for update;给表加锁。然后再sys帐户下运行脚本,即可看到数据库中的表锁了。

 

2、处理存储过程被锁

脚本说明:实际过程中可能你要重新编译某个存储过程理总是处于等待状态,最后会报无法锁定对象,这时你就可以用这个脚本找到锁定过程的那个sid,需要注重的是查v$Access这个视图本来就很慢,需要一些布耐心。

SELECT * FROM V$ACCESS

WHERE owner=<object owner>

And object=<procedure name>

3、查看回滚段状态

脚本说明:这也是DBA经常使用的脚本,因为回滚段是online还是full是他们的关怀之列嘛。

SELECT a.segment_name,b.status

FROM Dba_Rollback_Segs a, v$rollstat b

WHERE a.segment_id=b.usn
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息