技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Oracle --> 11G real time query,BUG不是一般的多

11G real time query,BUG不是一般的多

浏览:1787次  出处信息
以前11G的主库对表做了truncate ,在备库查询这张表,有时候会遇到ORA-08103: object no longer exists ,需要激活standby或者打补丁才能解决
 
现在11.1.0.7上,也出现了一系列的关于ddl定义的BUG,
 
因为物理standby的redo apply是基于数据块级别的,他不像我们走正常的SQL调用,所以,主库做了DDL,会引起shared pool里面数据字典新的的一系列更新,而在备库上,redo只负责把datafile block刷新了,但shared pool里的内容,却没有刷新完全
 
-主库:

    sys@CRMG> desc b

     Name Null? Type

     ―――――――――――――――――――――――――――- ――- ――――――――――――――――――-

     A DATE

     C

    -备库:

    @> desc b

     Name Null? Type

     ―――――――――――――――――――――――――――- ――- ――――――――――――――――――-

     A DATE

     C DATE

-主库:

    sys@CRMG>rename b to c;

Table renamed.
sys@CRMG> desc c

     Name Null? Type

     ―――――――――――――――――――――――――――- ――- ――――――――――――――――――-

     A DATE

     C

    sys@CRMG> insert into c select sysdate,sysdate from user_objects;

8606 rows created.
Commit complete.

    -备库:

    @>desc c;

     Name Null? Type

     ―――――――――――――――――――――――――――- ――- ――――――――――――――――――-

     A DATE

     C DATE

@>desc b

     Name Null? Type

     ―――――――――――――――――――――――――――- ――- ――――――――――――――――――-

     A DATE

     C

    @>select count(*) from c;

COUNT(*)

    ―――-

     8606

Elapsed: 00:00:00.00

    @>select count(*) from b;

COUNT(*)

    ―――-

     8606

    

    @>SELECT OBJECT_NAME,object_id,data_object_id from user_objects where object_name IN (’C\',’B\');

OBJECT_NAM OBJECT_ID DATA_OBJECT_ID

    ―――- ―――- ――――-

    C 16799 16799

-手工刷新

    @>alter system flush SHARED_POOL;

System altered.
Elapsed: 00:00:00.76

    @>select count(*) from b;

    select count(*) from b

     *

    ERROR at line 1:

    ORA-00942: table or view does not exist

Elapsed: 00:00:00.03

    @>

建议继续学习:

  1. 11G real time query    (阅读:1603)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1