ITPub博客

首页 > Linux操作系统 > Linux操作系统 > skip transaction on logical standby

skip transaction on logical standby

原创 Linux操作系统 作者:chriszhang_1117 时间:2009-04-13 13:01:34 0 删除 编辑
ENV:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production


在维护logical standby时,有时候需要手工skip掉一些transaction,如果重复的情况很多,就偷懒一下了:)

CREATE OR REPLACE 
PROCEDURE sys.fnd_skip_logstdby_trans
IS
   CURSOR csr
   IS
      SELECT xidusn, xidslt, xidsqn
        FROM sys.dba_logstdby_events
       WHERE event_time = (SELECT MAX (event_time)
                             FROM sys.dba_logstdby_events);
   cursor1 INTEGER;
   v_xidusn   sys.dba_logstdby_events.xidusn%TYPE;
   v_xidslt   sys.dba_logstdby_events.xidslt%TYPE;
   v_xidsqn   sys.dba_logstdby_events.xidsqn%TYPE;
BEGIN
   OPEN csr;   
      cursor1 := dbms_sql.open_cursor;
      dbms_sql.parse(cursor1,'alter database stop logical standby apply',dbms_sql.v7);
   LOOP      
      FETCH csr INTO v_xidusn,v_xidslt,v_xidsqn;      
      DBMS_LOGSTDBY.SKIP_TRANSACTION(v_xidusn, v_xidslt, v_xidsqn);           
      EXIT WHEN csr%NOTFOUND;      
   END LOOP;
      dbms_sql.parse(cursor1,'alter database start logical standby apply immediate',dbms_sql.v7);
      

   DBMS_OUTPUT.put_line ('Total :' || csr%ROWCOUNT);

   CLOSE csr;
END;
/

SQL>exec find_skip_logstdby_trans;

记录.

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

上一篇: expdp and impdp
请登录后发表评论 登录
全部评论

注册时间:2008-12-26

  • 博文量
    14
  • 访问量
    13664