高級復制/物化視圖復制中ORA-23313錯誤解決一例
2024-07-21 02:34:12
供稿:網友
在進行復制組創(chuàng)建的過程中出現如下錯誤:
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
反復檢查后發(fā)現問題還是出現在db link上,在測試中發(fā)現:
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" ;
此時結果正常。
Ok,現在我基本確認是域名的問題。
通過使用類似命令更改了域名以后,恢復正常:
alter database rename global_name to DB002.QLINK;
此后搜索Metalink,真還找到了類似問題描述,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)
但是看來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>
供參考。