讲解物化视图ORA-23313错误的解决方法(3)
作者:shuijing 出处:赛迪网 更新时间:2008-07-03 责任编辑:seward
 
 

 查找资料后得到的结论:说是因为目前主站属于静默模式,解决过程如下:

BEGIN

DBMS_REPCAT.RESUME_MASTER_ACTIVITY (

gname => 'reptest');

END;

/

但依然无效,同样样报错,上午这样执行一下后,建立物化视图组虽然通过了,但意外的是,

现在把所有都删除了重新建立,竟然报错误了。

SQL> connect repadmin/repadmin@db001.d-link ;

已连接。

SQL> select gname, master, status from dba_repgroup;

 

GNAME M STATUS

------------------------------ - ---------

REPTEST Y NORMAL

 

按照其他方法:

SQL> execute dbms_repcat.suspend_master_activity (gname => 'reptest');

 

PL/SQL 过程已成功完成。

 

SQL> connect mviewadmin/mviewadmin@db002.d-link ;

已连接。

SQL> begin

2 dbms_repcat.create_mview_repgroup(

3 gname=>'reptest',

4 master=>'db001.d-link',

5 propagation_mode=>'ASYNCHRONOUS');

6 end;

7 /

begin

*

ERROR 位于第 1 行:

ORA-23313: 在 PUBLIC 没有控制对象组 "REPTEST"."db001.d-link"

ORA-06512: 在"SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在"SYS.DBMS_REPCAT_SNA_UTL", line 1690

ORA-06512: 在"SYS.DBMS_REPCAT_SNA", line 64

ORA-06512: 在"SYS.DBMS_REPCAT", line 1262

ORA-06512: 在line 2

 

 

SQL>

-----------------------------------------------------

--创建刷新组

BEGIN

DBMS_REFRESH.MAKE (

name => 'mvadmin.rep_refresh',

list => '',

next_date => SYSDATE,

interval => 'SYSDATE + 1/24',

implicit_destroy => FALSE,

rollback_seg => '',

push_deferred_rpc => TRUE,

refresh_after_errors => FALSE);

END;

/

 

SQL> connect mviewadmin/mviewadmin@db002.d-link ;

已连接。

 

SQL> select *from dev001.test001@db001 ;

 

A B

---------- ----------

1 wui

2 zyun

 

SQL>

------------------------------------------------------------------

--创建物化视图

SQL> CREATE MATERIALIZED VIEW dev001.test001

2 REFRESH FAST WITH PRIMARY KEY FOR UPDATE

3 AS SELECT * FROM dev001.test001@db001 ;

AS SELECT * FROM dev001.test001@db001

*

ERROR 位于第 3 行:

ORA-12028: 主体站点 @DB001.d-link 不支持实体化视图类型

 

 

SQL>

 

 

-------------------------------------------------------------------

 

(两处用长虚线的位置是问题所在)。

 

解决方法:(参考)

在进行复制组创建的过程中出现如下错误:

SQL> begin

2 dbms_repcat.create_mview_repgroup(

3 gname=>'reptest',

4 master=>'db001.d-link',

5 propagation_mode => 'ASYNCHRONOUS');

6 end;

7 /

begin

*

ERROR 位于第 1 行:

ORA-23313: 在 PUBLIC 没有控制对象组 "REPTEST"."db001.d-link"

ORA-06512: 在"SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在"SYS.DBMS_REPCAT_SNA_UTL", line 1690

ORA-06512: 在"SYS.DBMS_REPCAT_SNA", line 64

ORA-06512: 在"SYS.DBMS_REPCAT", line 1262

ORA-06512: 在line 2

 

 

经多次检查后发现问题出现在db link上,在测试中发现的问题:

SQL> connect system/pass@db002 ;

已连接。

SQL> select owner,db_link from dba_db_links ;

 

OWNER DB_LINK

---------- --------------------

PUBLIC DB001.Q-LINK

MVADMIN DB001.Q-LINK

DEV001 DB001.Q-LINK

 

SQL> connect system/pass@db001 ;

已连接。

SQL> select owner,db_link from dba_db_links ;

 

OWNER DB_LINK

---------- --------------------

PUBLIC DB002.Q-LINK

REPADMIN DB002.Q-LINK

 

SQL> connect mvadmin/pass@db002

已连接。

SQL> select * from dev001.test001@db001 ;

 

A B

---------- --------------------

1 wanghui

2 zhangyun

 

SQL> select * from dev001.test001@db001.q-link ;

select * from dev001.test001@db001.q-link

*

ERROR 位于第 1 行:

ORA-00933: SQL 命令未正确结束

 

 

SQL>

 

 

当引用类似"db001.q-link"的db link时,Oracle出现了错误,此时应注意"-"这个特殊字符,因为Oracle在db link 中无法正确的识别。

然后加上双引号(""),如下:

select * from dev001.test001@"db001.q-link" ;

 

 

此时结果正常。现在就可以确认是域名出现问题了。

 

然后通过使用类似命令更改了域名以后,即可恢复正常:

alter database rename global_name to DB002.QLINK;

 

问题的详细描述,Note:274162.1

The above problem is known to arise due to the presence of the '-' character in the domain name. Upon renaming the domain to a name that doesn't contain this character, the above problem disappears. Oracle的说法:

The cause of this occurance is not clear. 报告中的影响范围为:

Oracle Net Services - Version: 8.1.7.4 to 8.1.7.4

Solaris Operating System (SPARC 32-bit)

注释:Oracle 9i中此问题也同样存在,此示例的数据库版本如下:

SQL> select * from v$version ;

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

PL/SQL Release 9.2.0.1.0 - Production

CORE 9.2.0.1.0 Production

TNS for 32-bit Windows: Version 9.2.0.1.0 - Production

NLSRTL Version 9.2.0.1.0 - Production

 

SQL>

 
     
 
 
继续>>Oracle
[第1页][第2页][下一页]
 
内容导航  
第1页讲解物化视图ORA-2331.. 第2页Oracle
上一篇 : 讲解物化视图ORA-23313错.. 下一篇教你快速掌握解决RMAN-0..
 
  您要为所发表的言论的后果负责,请各位遵纪守法并注意文明用语
标题:  

[ 关于本站 ] [ 广告服务 ] [ 商务合作 ] [ 联系我们 ] [ 合作伙伴 ] [ 法律顾问 ] [ 网站地图 ]
千橡公司 京ICP证041489号 Copyright (c) 1997-2007 All Right Reserved.