一个诡异的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 :正常

 

 

==

遗留问题

 

转载于:https://www.cnblogs.com/4admin2root/archive/2012/08/11/2633356.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值