li
  当前位置:主页 > 性能优化 > 文章内容
li
10203设置CURSOR_SHARING为SIMILAR导致物化视图刷新失败
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:8  

Oracle10.2.0.3下,如果设置了CURSOR_SHARINGSIMILAR,则可能造成远端数据库物化视图刷新失败。


重现一下错误。

会话一:

SQL> ALTER SYSTEM SET CURSOR_SHARING = SIMILAR;

系统已更改。

SQL> CREATE TABLE T_MV (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30));

表已创建。

SQL> CREATE MATERIALIZED VIEW LOG ON T_MV;

实体化视图日志已创建。

会话二:

SQL> SET SQLP 'SQL2> '
SQL2> CREATE DATABASE LINK TESTRAC.US.ORACLE.COM
2 CONNECT TO TEST IDENTIFIED BY TEST USING 'TESTRAC';

数据库链接已创建。

SQL2> CREATE MATERIALIZED VIEW MV_T_MV REFRESH FAST
2 AS SELECT * FROM T_MV@TESTRAC.US.ORACLE.COM;

实体化视图已创建。

会话一:

SQL> INSERT INTO T_MV VALUES (1, 'A');

已创建 1 行。

SQL> DELETE T_MV WHERE ID = 1;

已删除 1 行。

SQL> COMMIT;

提交完成。

会话二:

SQL2> EXEC DBMS_MVIEW.REFRESH('MV_T_MV')

PL/SQL 过程已成功完成。

会话一:

SQL> INSERT INTO T_MV VALUES (2, 'B');

已创建 1 行。

SQL> DELETE T_MV WHERE ID = 2;

已删除 1 行。

SQL> COMMIT;

提交完成。

会话二:

SQL2> EXEC DBMS_MVIEW.REFRESH('MV_T_MV')
BEGIN DBMS_MVIEW.REFRESH('MV_T_MV'); END;

* 1 行出现错误:
IXDBA.NET社区论坛
ORA-12008:
实体化视图的刷新路径中存在错误

ORA-01008:
并非所有变量都已绑定
ORA-02063:
紧接着 line (起自 TESTRAC.US.ORACLE.COM)
ORA-06512:
"SYS.DBMS_SNAPSHOT", line 2254
ORA-06512:
"SYS.DBMS_SNAPSHOT", line 2460
ORA-06512:
"SYS.DBMS_SNAPSHOT", line 2429
ORA-06512:
line 1

出现这个错误的主要原因是由于设置了CURSOR_SHARING的值等于SIMILAR

查询了一下metalink发现10.2.0.3上和CURSOR_SHARING相关的问题还真不少,具体的描述可以参考:Doc ID: Note:457607.1。这个问题和Bug No. 5863277的描述最为接近。

解决问题的最简单的方法就是将CURSOR_SHARING设置为EXACT,否则需要打5863277的补丁。

Oracle将在11g中解决这个bug




  上一篇: 物化视图的创建写法与刷新问题   下一篇: 小议物化视图与基表数据不一致的...
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·物化视图的创建写法与刷新问题
·小议物化视图与基表数据不一致的...
·建立物化视图导致数据库实例崩溃
·ORA-600(999)错误(三)
·物化视图刷新过程中出现的约束冲...
·ORA-600(999)错误(二)
·GLOBAL_NAME相同的数据库中物化视...
·GLOBAL_NAME相同的数据库中物化视...
·物化视图复制快速刷新的限制(二...
·物化视图是否根据字段进行刷新(...
·小议物化视图与基表数据不一致的...
·包含复制环境的数据库迁移(二)
·包含复制环境的数据库迁移(一)
·inode耗尽导致No space left on ...
·在Oracle10g RAC下新增ASM磁盘组
·oracle RAC环境中系统时钟的调整
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本Ora...
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理一...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接