打印本文 打印本文 关闭窗口 关闭窗口
ORACLE DBA常用SQL脚本工具-管理篇(1)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1898  更新时间:2009/4/22 22:08:08  文章录入:mintao  责任编辑:mintao
   --  AND 

   ORDER BY 1,2   ;  

 

5、  处理存储过程被锁

A、  脚本说明:

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

B、脚本原文:

SELECT * FROM V$ACCESS

 WHERE owner=<object owner>

And object<procedure name>

 

6、  查看回滚段状态

A、  脚本说明

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

    B、SELECT a.segment_name,b.status

  FROM Dba_Rollback_Segs a,

        v$rollstat b

        WHERE a.segment_id=b.usn

         ORDER BY 2

        

7、  看哪些session正在使用哪些回滚段

      A、 脚本说明:

 当你发现一个回滚段处理full状态,你想使它变回online状态,这时你便会用alter rollback segment rbs_seg_name shrink,可很多时侯确shrink不回来,主要是由于某个session在用,这时你就用到了这个脚本,找到了sid的serial#余下的事就不用我说了吧。

B、脚本原文

 SELECT  r.name 回滚段名,

  s.sid,

  s.serial#,

  s.username 用户名,

  s.status,

  t.cr_get,

  t.phy_io,

  t.used_ublk,

  t.noundo,

  substr(s.program, 1, 78) 操作程序

FROM   sys.v_$session s,sys.v_$transaction t,sys.v_$rollname r

WHERE  t.addr = s.taddr and t.xidusn = r.usn

 -- AND r.NAME IN (''''ZHYZ_RBS'''')

ORDER  BY t.cr_get,t.phy_io

 

8、  查看正在使用临时段的session

           A、 脚本说明:

许多的时侯你在查看哪些段无法扩展时,回显的结果是临时段,或你做表空间统计时发现临段表空间的可用空间几乎为0,这时按oracle的说法是你只有重新启动数据库才能回收这部分空间。实际过程中没那么复杂,使用以下这段脚本把占用临时段的session杀掉,然后用alter tablespace temp coalesce;这个语句就把temp表空间的空间回收回来了。

B、 脚本原文

 

SELECT username,

       sid,

       serial#,

       sql_address,

       machine,

       program,

       tablespace,

       segtype,

       contents

  FROM v$session se,

       v$sort_usage su

 WHERE se.saddr=su.session_addr 

 (待续)

 

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口