ITPub博客

首页 > 数据库 > Oracle > 【Oracle】查看事务回滚的时间

【Oracle】查看事务回滚的时间

Oracle 作者:531968912 时间:2016-05-19 08:35:38 0 删除 编辑
首先,我是做BI的,在工作中偶尔会出现一些特殊情况,比如突然在某天ETL日增量调度的时候一个简单的插入操作卡住不动几小时都过不去,平时可能30分钟左右。<br /> 可能是资源征用导致DataStage资源分配不均等各种原因,这个时候通常会有运维的同事协助中断此作业的运行,进行重新插入。<br /> <br /> 中断后就要开始漫长的等待,等全部rollback后进行rerun这个JOB。<br /> <br /> 而这时候业务用户就不爽了,为什么都9点了我还看不了报表数据? 通常情况我们会先各种赔礼道歉然后给一个大概的时间点安抚用户,<br /> 等待时间基本就是回滚时间 + 重新插数时间,插数时间可以从调度日志中获取历史平均值,而回滚时间就难以获取,这里给大家普及一个查看事物回滚时间的知识点<br /> <br /> 这里我们不详细讲解DB异常关闭的SMON事务回滚,大概说下:<br /> 基本分3种方式:<br /> 1.&nbsp;查询视图V$FAST_START_TRANSACTIONS中字段UNDOBLOCKSDONE,UNDOBLOCKSTOTAL估算smon恢复进度<br /> 2. 跟踪日志<br /> 3. 查询内部试图x$ktuxe [k]ernel layer [t]ransaction layer [u]ndo transaction [e]ntry&nbsp;<br /> 可参考http://www.ssc.stn.sh.cn/html/zsk/ITyw/2012-04/5819.html<br /> <br /> 这里主要说下一个insert、delete、update等语句的rollback时间估算<br /> 建个测试表<br /> <br /> <div> <div class="codeheads"> <p> 点击(<span style="cursor:pointer;color:red;" onclick="code_hide('code371')">此处</span>)折叠或打开 </p> </div> <div id="code371" class="codeText"> <ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"> <li> <span style="color:#000000;"><span style="color:#0000FF;">create</span> <span style="color:#0000FF;">table</span> table_chenxu <span style="color:#0000FF;">as</span> <span style="color:#0000FF;">select</span> <span style="color:#0000CC;">*</span> <span style="color:#0000FF;">from</span> dba_objects</span> </li> </ol> </div> </div> 插入大量数据<br /> <div> <div class="codeheads"> <p> 点击(<span style="cursor:pointer;color:red;" onclick="code_hide('code663')">此处</span>)折叠或打开 </p> </div> <div id="code663" class="codeText"> <ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"> <li> <span style="color:#000000;"><span style="color:#0000FF;">begin</span><br /> </span> </li> <li> <span style="color:#0000FF;">for</span> i <span style="color:#0000FF;">in</span> 1<span style="color:#0000CC;">.</span><span style="color:#0000CC;">.</span>100<br /> </li> <li> loop <br /> </li> <li> <span style="color:#0000FF;">insert</span> <span style="color:#0000FF;">into</span> table_chenxu<br /> </li> <li> <span style="color:#0000FF;">select</span> <span style="color:#0000CC;">*</span> <span style="color:#0000FF;">from</span> dba_objects<span style="color:#0000CC;">;</span><br /> </li> <li> commit<span style="color:#0000CC;">;</span><br /> </li> <li> <span style="color:#0000FF;">end</span> loop<span style="color:#0000CC;">;</span><br /> </li> <li> <span style="color:#0000FF;">end</span><span style="color:#0000CC;">;</span> </li> </ol> </div> </div> <br /> 首先第一步我们要拿到正在回滚的SQL的SQLID和SESSIONID,这个简单,假如我们对table_chenxu进行delete,回滚过程中这个<span style="white-space:normal;"><span style="white-space:normal;">table_chenxu</span>必定是被锁的,所以我们可以根据gv$locked_object来查看当前对象是否被锁,且根据sid查看锁表的SQL<br /> <br /> 我们先update下这个表<br /> <span style="background-color:#CCCCCC;"></span><span style="background-color:#CCCCCC;"></span><span style="background-color:#CCCCCC;"></span><span style="background-color:#CCCCCC;">update table_chenxu t set t.owner = 'azzo';</span><span style="background-color:#CCCCCC;"><br /> </span></span><span style="white-space:normal;"><span><br /> 然后查询被锁的相关信息:</span></span><span style="white-space:normal;"><span style="background-color:#CCCCCC;"><br /> <span style="background-color:#FFE500;">注:多个系统视图关联查询的时候为了防止试图合并可以加上use_hash或者no_merge</span><br /> <div> <div class="codeheads"> <p> 点击(<span style="cursor:pointer;color:red;" onclick="code_hide('code678')">此处</span>)折叠或打开 </p> </div> <div id="code678" class="codeText"> <ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"> <li> <span style="color:#000000;"><span style="color:#0000FF;">select</span> <span style="color:#FF9900;">/*+ use_hash(o,s,t,q)*/</span><br /> </span> </li> <li> &nbsp;t<span style="color:#0000CC;">.</span>object_name<span style="color:#0000CC;">,</span> o<span style="color:#0000CC;">.</span>session_id<span style="color:#0000CC;">,</span> s<span style="color:#0000CC;">.</span>sql_id<span style="color:#0000CC;">,</span> q<span style="color:#0000CC;">.</span>sql_text<span style="color:#0000CC;">,</span> s<span style="color:#0000CC;">.</span><span style="color:#0000CC;">*</span><br /> </li> <li> &nbsp;&nbsp;<span style="color:#0000FF;">from</span> gv$locked_object o<span style="color:#0000CC;">,</span> dba_objects t<span style="color:#0000CC;">,</span> gv$<span style="color:#0000FF;">session</span> s<span style="color:#0000CC;">,</span> gv$sql q<br /> </li> <li> &nbsp;<span style="color:#0000FF;">where</span> t<span style="color:#0000CC;">.</span>object_id <span style="color:#0000CC;">=</span> o<span style="color:#0000CC;">.</span>object_id<br /> </li> <li> &nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">and</span> o<span style="color:#0000CC;">.</span>session_id <span style="color:#0000CC;">=</span> s<span style="color:#0000CC;">.</span>sid<br /> </li> <li> &nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">and</span> s<span style="color:#0000CC;">.</span>sql_id <span style="color:#0000CC;">=</span> q<span style="color:#0000CC;">.</span>sql_id<br /> </li> <li> &nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">and</span> t<span style="color:#0000CC;">.</span>object_name <span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">'TABLE_CHENXU'</span> </li> </ol> </div> </div> </span></span><span style="white-space:normal;"><span>结果如下:<br /> <img src="/attachment/201509/7/26224278_1441625282A0vI.jpg" width="700" height="180.13029315961" alt="" /><br /> <br /> <br /> 我是PC机,update用了628秒,现在rollback(plsql developer死了。。于是重新开一个):<br /> <br /> 使用如下SQL查看<span style="color:#5C5C5C;font-family:Consolas, monospace;letter-spacing:0.10000000149011612px;line-height:15px;white-space:normal;background-color:#FFFFFF;">ktuxesiz<span style="color:#000000;">字段</span></span><span style="color:#000000;">,过一段时间(如10s)再执行一次,再看一下,两个结果相减除以10就是每秒回滚的速度</span><br /> <div> <div class="codeheads"> <p> 点击(<span style="cursor:pointer;color:red;" onclick="code_hide('code550')">此处</span>)折叠或打开 </p> </div> <div id="code550" class="codeText"> <ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"> <li> <span style="color:#000000;"><span style="color:#0000FF;">select</span><br /> </span> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s<span style="color:#0000CC;">.</span>username<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidusn<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidslot<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidsqn<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>ktuxesiz<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">from</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>x$ktuxe x<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>v_$transaction t<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>v_$<span style="color:#0000FF;">session</span> s<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">where</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>inst_id <span style="color:#0000CC;">=</span> <span style="color:#FF0000;">userenv</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">'Instance'</span><span style="color:#0000CC;">)</span> <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>ktuxesta <span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">'ACTIVE'</span> <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>ktuxesiz <span style="color:#0000CC;">&gt;</span> 1 <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidusn <span style="color:#0000CC;">=</span> x<span style="color:#0000CC;">.</span>ktuxeusn <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidslot <span style="color:#0000CC;">=</span> x<span style="color:#0000CC;">.</span>ktuxeslt <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidsqn <span style="color:#0000CC;">=</span> x<span style="color:#0000CC;">.</span>ktuxesqn <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s<span style="color:#0000CC;">.</span>saddr <span style="color:#0000CC;">=</span> t<span style="color:#0000CC;">.</span>ses_addr<span style="color:#0000CC;">;</span> </li> </ol> </div> </div> <br /> 或者使用自动化脚本(取自网络)<br /> <div> <div class="codeheads"> <p> 点击(<span style="cursor:pointer;color:red;" onclick="code_hide('code909')">此处</span>)折叠或打开 </p> </div> <div id="code909" class="codeText"> <ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"> <li> <span style="color:#000000;">declare<br /> </span> </li> <li> &nbsp;&nbsp;cursor tx <span style="color:#0000FF;">is</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">select</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s<span style="color:#0000CC;">.</span>username<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidusn<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidslot<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidsqn<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>ktuxesiz<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">from</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>x$ktuxe x<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>v_$transaction t<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>v_$<span style="color:#0000FF;">session</span> s<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">where</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>inst_id <span style="color:#0000CC;">=</span> <span style="color:#FF0000;">userenv</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">'Instance'</span><span style="color:#0000CC;">)</span> <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>ktuxesta <span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">'ACTIVE'</span> <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x<span style="color:#0000CC;">.</span>ktuxesiz <span style="color:#0000CC;">&gt;</span> 1 <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidusn <span style="color:#0000CC;">=</span> x<span style="color:#0000CC;">.</span>ktuxeusn <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidslot <span style="color:#0000CC;">=</span> x<span style="color:#0000CC;">.</span>ktuxeslt <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span style="color:#0000CC;">.</span>xidsqn <span style="color:#0000CC;">=</span> x<span style="color:#0000CC;">.</span>ktuxesqn <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s<span style="color:#0000CC;">.</span>saddr <span style="color:#0000CC;">=</span> t<span style="color:#0000CC;">.</span>ses_addr<span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;user_name <span style="color:#0000FF;">varchar2</span><span style="color:#0000CC;">(</span>30<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;xid_usn <span style="color:#0000FF;">number</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;xid_slot <span style="color:#0000FF;">number</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;xid_sqn <span style="color:#0000FF;">number</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;used_ublk1 <span style="color:#0000FF;">number</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;used_ublk2 <span style="color:#0000FF;">number</span><span style="color:#0000CC;">;</span><br /> </li> <li> <span style="color:#0000FF;">begin</span><br /> </li> <li> &nbsp;&nbsp;open tx<span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;loop<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;fetch tx <span style="color:#0000FF;">into</span> user_name<span style="color:#0000CC;">,</span> xid_usn<span style="color:#0000CC;">,</span> xid_slot<span style="color:#0000CC;">,</span> xid_sqn<span style="color:#0000CC;">,</span> used_ublk1<span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF0000;">exit</span> when tx<span style="color:#0000CC;">%</span>notfound<span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">if</span> tx<span style="color:#0000CC;">%</span>rowcount <span style="color:#0000CC;">=</span> 1<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">then</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>dbms_lock<span style="color:#0000CC;">.</span>sleep<span style="color:#0000CC;">(</span>10<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">end</span> <span style="color:#0000FF;">if</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">select</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF0000;">sum</span><span style="color:#0000CC;">(</span>ktuxesiz<span style="color:#0000CC;">)</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">into</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used_ublk2<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">from</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>x$ktuxe<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">where</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inst_id <span style="color:#0000CC;">=</span> <span style="color:#FF0000;">userenv</span><span style="color:#0000CC;">(</span><span style="color:#FF00FF;">'Instance'</span><span style="color:#0000CC;">)</span> <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ktuxeusn <span style="color:#0000CC;">=</span> xid_usn <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ktuxeslt <span style="color:#0000CC;">=</span> xid_slot <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ktuxesqn <span style="color:#0000CC;">=</span> xid_sqn <span style="color:#0000FF;">and</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ktuxesta <span style="color:#0000CC;">=</span> <span style="color:#FF00FF;">'ACTIVE'</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">if</span> used_ublk2 <span style="color:#0000CC;">&lt;</span> used_ublk1<br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">then</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>dbms_output<span style="color:#0000CC;">.</span>put_line<span style="color:#0000CC;">(</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_name <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF00FF;">''</span><span style="color:#FF00FF;">'s transaction '</span> <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xid_usn <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span> <span style="color:#FF00FF;">'.'</span> <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xid_slot <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span> <span style="color:#FF00FF;">'.'</span> <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xid_sqn <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF00FF;">' will finish rolling back at approximately '</span> <span style="color:#0000CC;">|</span><span style="color:#0000CC;">|</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF0000;">to_char</span><span style="color:#0000CC;">(</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">sysdate</span> <span style="color:#0000CC;">+</span> used_ublk2 <span style="color:#0000CC;">/</span> <span style="color:#0000CC;">(</span>used_ublk1 <span style="color:#0000CC;">-</span> used_ublk2<span style="color:#0000CC;">)</span> <span style="color:#0000CC;">/</span> 6 <span style="color:#0000CC;">/</span> 60 <span style="color:#0000CC;">/</span> 24<span style="color:#0000CC;">,</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#FF00FF;">'HH24:MI:SS DD-MON-YYYY'</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">)</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF;">end</span> <span style="color:#0000FF;">if</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;<span style="color:#0000FF;">end</span> loop<span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;<span style="color:#0000FF;">if</span> user_name <span style="color:#0000FF;">is</span> <span style="color:#0000FF;">null</span><br /> </li> <li> &nbsp;&nbsp;<span style="color:#0000FF;">then</span><br /> </li> <li> &nbsp;&nbsp;&nbsp;&nbsp;sys<span style="color:#0000CC;">.</span>dbms_output<span style="color:#0000CC;">.</span>put_line<span style="color:#0000CC;">(</span><span style="color:#FF00FF;">'No transactions appear to be rolling back.'</span><span style="color:#0000CC;">)</span><span style="color:#0000CC;">;</span><br /> </li> <li> &nbsp;&nbsp;<span style="color:#0000FF;">end</span> <span style="color:#0000FF;">if</span><span style="color:#0000CC;">;</span><br /> </li> <li> <span style="color:#0000FF;">end</span><span style="color:#0000CC;">;</span> </li> </ol> </div> </div> <br /> <br /> 结果如下:<br /> <span style="background-color:#337FE5;font-size:16px;"><strong>SCOTT's transaction 8.19.1171 will finish rolling back at approximately 19:47:57 07-9月 -2015</strong></span><br /> <div style="white-space:nowrap;"> <br /> </div> <br /> 是不是很方便~ &nbsp;不过自动化脚本需要有dba权限哦,sys.dbms_lock.sleep(10)这个包,普通用户是没权限以调用的,如果没有dba权限就掐表及时吧<img src="http://blog.itpub.net/kindeditor/plugins/emoticons/images/13.gif" border="0" alt="" /><br /> <br /> 直到写完这篇文章,我的plsql还在未响应中。。。<br /> <br /> <br /> <br /> </span></span><br />

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25462274/viewspace-2102867/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-09-24

  • 博文量
    576
  • 访问量
    1111395