11G real time query,BUG不是一般的多
作者:八神 | 分类: 大话技术 | 标签: 11g | 日期:2009-09-06
以前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> desc b
Name Null? Type
———————————————————————————– ——– ——————————————————–
A DATE
C
–备库:
@> desc b
Name Null? Type
———————————————————————————– ——– ——————————————————–
A DATE
C DATE
–主库:
sys@CRMG>rename b to c;
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;
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;
Name Null? Type
———————————————————————————– ——– ——————————————————–
A DATE
C
@>select count(*) from c;
COUNT(*)
———-
8606
———-
8606
Elapsed: 00:00:00.00
@>select count(*) from b;
@>select count(*) from b;
COUNT(*)
———-
8606
@>SELECT OBJECT_NAME,object_id,data_object_id from user_objects where object_name IN (’C',’B');
———-
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
———- ———- ————–
C 16799 16799
–手工刷新
@>alter system flush SHARED_POOL;
@>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
@>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
@>
@>
有7人发表了评论 ↓发表评论↓



太高深, 看不懂 。
入党申请书范文 @ September 7, 2009 |
请教各位前辈,我在vmware中做了无数次测试都碰到这样的问题,不知道如解决:
问题1:逻辑卷做asm标志成功后,重启系统标志丢失,但硬盘分区就没这现象!!
# /etc/init.d/oracleasm createdisk VOL1 /dev/mapper/VolGroup01-LogVol01
#提示标志成功
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdb1
#提示标志成功
# /etc/init.d/oracleasm listdisks
#可看到两个asm盘
#然后重启系统
# reboot
#再次检查
# /etc/init.d/oracleasm listdisks
#可看到VOL2
#再次标记
# /etc/init.d/oracleasm createdisk VOL1 /dev/mapper/VolGroup01-LogVol01
#提示失败。(VolGroup01-LogVol01已经标记过了)
问题2:
#配置/etc/udev/rules.d/60-raw.rules
#绑定逻辑卷到raw1
ACTION==”add”, ENV{MAJOR}==”253″, ENV{MINOR}==”5″, RUN+=”/bin/raw /dev/raw/raw1 %M %m”
#绑定物理分区到raw2
ACTION==”add”, ENV{MAJOR}==”8″, ENV{MINOR}==”65″, RUN+=”/bin/raw /dev/raw/raw2 %M %m”
KERNEL==”raw1″, OWNER=”oracle”, GROUP=”dba”, MODE=”0660″
KERNEL==”raw2″, OWNER=”oracle”, GROUP=”dba”, MODE=”0660″
#然后重启系统
#查看raw设置
# raw -qa
#只能看到raw2,raw1不存在
环境:rhel5+oracle11gR1
以上问题困惑我很长时间了,今天无意中看到alibaba数据团队的这个博客,特向各位前辈请教,希望能在不忙的时候帮我解答一下。
我的邮箱:6119968@qq.com,希望能和各位交流一起oracle技术。
多谢了!
think @ September 18, 2009 |
http://www.itpub.net/thread-1226087-1-1.html
请帮忙解决一下,不知道是什么原因?也不知道问题出在哪?
还想问下,阿里利用broker如何实现自动switchover和failover的?
javen @ October 15, 2009 |
这个问题,11.2.0.1依然存在
NinGoo @ November 2, 2009 |
那请教楼上大哥,这个问题是oracle/linux本身的bug,并非我操作过程的错误,对吗?
think @ November 6, 2009 |
(⊙ˍ⊙)>﹏<
SWM工法 @ December 23, 2009 |
(⊙ˍ⊙)>﹏<
smw工法 @ December 23, 2009 |