zoukankan      html  css  js  c++  java
  • 一个诡异的offline undo tablespace 问题 .

    数据库 oracle 10.2.0.4  RAC 2 nodes

    操作系统 redhat 5.3  x64

    周末升级系统,数据库一个过程出现编译问题,没太在意

    周一发现错误还在,

    错误信息:

    Error 604 trapped in 2PC on transaction 67.38.6337026. Cleaning up.
    Error stack returned to user:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00376: file 40 cannot be read at this time
    ORA-01110: data file 40: '+DG1/xxx/datafile/undotbs3.422.720270075'

    检查执行语句为调用一个包的过程

    其过程很简单

    类似如下

       INSERT INTO B SELECT * FROM A;
       EXECUTE IMMEDIATE 'TRUNCATE TABLE A';
       EXECUTE IMMEDIATE 'ALTER TABLE A ENABLE ROW MOVEMENT';
       EXECUTE IMMEDIATE 'ALTER TABLE A SHRINK SPACE';
       EXECUTE IMMEDIATE 'ALTER TABLE A DISABLE ROW MOVEMENT';

    上面的undo是2个月前offline的 本来是打算删除的

    两个实例的undo 参数均没有指定到该undo 表空间上

    很奇怪啊


    后来发现执行

    SQL> select * from FLASHBACK_TRANSACTION_QUERY;
    select * from FLASHBACK_TRANSACTION_QUERY
                  *
    ERROR at line 1:
    ORA-01135: file 40 accessed for DML/query is offline
    ORA-01110: data file 40: '+DG1/xxx/datafile/undotbs3.422.720270075'

    这个undo 不是offline 了吗?而且两个月了!

    为了尽快恢复该问题

    重新online 了该表空间

    重新 编译 包:正常

    查询FLASHBACK_TRANSACTION_QUERY :正常

    ==

    遗留问题

  • 相关阅读:
    更改ubuntu的官方镜像源
    python中的decorator的作用
    thunderbird 设置 邮件回复时内容在上方显示
    Sapnco3 RfcTable Structure
    DbEntry 访问Access2010数据库
    DbEntry 默认 主键ID为long
    DbEntry 简单实现
    nginx学习时使用EditPuls编辑conf.xml
    java的集合类面试题
    tomcat组成介绍和调优方案
  • 原文地址:https://www.cnblogs.com/4admin2root/p/2633356.html
Copyright © 2011-2022 走看看