When I establish updatable-snapshot replication environment I encounter such problem, issuing command:
exec DBMS_REPCAT.CREATE_SNAPSHOT_REPGROUP( gname => 'business.grain_master', master => 'grain.gov',propagation_mode => 'ASYNCHRONOUS');
ORA-23313: no object-group in public :"GRAIN_MASTER"."GRAIN.GOV"
ORA-06512: "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: "SYS.DBMS_REPCAT_SNA_UTL", line 2424
ORA-06512: "SYS.DBMS_REPCAT_SNA_UTL", line 1757
ORA-06512: "SYS.DBMS_REPCAT_SNA", line 64
ORA-06512: "SYS.DBMS_REPCAT", line 1262
ORA-06512: "SYS.DBMS_REPCAT", line 1250
ORA-06512: line 1
but I succeeded the following:
--create master group
exec DBMS_REPCAT.CREATE_MASTER_REPGROUP( gname => 'grain_master');
--create master object
exec DBMS_REPCAT.CREATE_MASTER_REPOBJECT(sname => 'business',oname => 'DECLAREUNIT', type => 'TABLE', gname => 'grain_master');
--support master object
execute DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT('BUSINESS ','DECLAREUNIT','TABLE');
--activate master group
exec DBMS_REPCAT.RESUME_MASTER_ACTIVITY('grain_master') ;
create public database link grain.gov connect to business identified by business using 'grain.gov';
I think the problem may be :ORA-23313: no object-group in public :"GRAIN_MASTER"."GRAIN.GOV"
but I don't know I how I can have the privilege to logon to Enterprise manager console to do this manaually, i guess i ommited some steps creating master group successfully, but did see the master group in the dba_repgroup table. Has anyone had such problem before?
Or can anyone tell me where possiblely goes wrong?
thanks in advance.
Firstly, apologies to all for bumping this ancient thread. However, today I came across the same error and found a solution. So I am posting a possible solution for the benefit of those seeking help regarding ORA-23313. I came across the ORA-23313 error while executing DBMS_REPCAT.CREATE_MVIEW_REPGROUP (Oracle 10g).
Env: Ora 10g, MASTER < - > UPDATEABLE SLAVE configuration
It seems that the procedure will give the ORA-23313 if it cannot resolve a master replication group for whatever reason. So make sure you have not made any typeos on the group name and dblink name. Remember that the MVIEW REPGROUP on the slave must be named the same as the MASTER REPGROUP on the master and the DBLINK name on the slave must be the same as the GLOBAL_NAME of the master that it is connecting to.
After many attempts I found that in order for the call to succeed you must have:
1) On the master, enabled replication by:
EXEC DBMS_REPCAT.CREATE_MASTER_REPOBJECT('OBJECTOWNER', 'OBJECTNAME', 'OBJECTTYPE', GNAME=>'GROUPNAME'); -- < for each and every object you want replicated
EXEC DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT('OBJECTOWNER', 'OBJECTNAME', 'OBJECTTYPE'); -- < for each and every object you want replicated
2) On the slave, create a database link that is named exactly the same as the global_name of the master. You can obtain the master global_name by executing "select global_name from global_name" on the master. My DBLINK code looks like this:
create database link SANDBOX.REGRESS.RDBMS.DEV.US.ORACLE.COM
connect to testrep
identified by testrep
Notice that I used the full global_name of the master as the name of my DBLINK. Also notice that my "USING" clause only uses the abbreviated TNS name as defined in my slaves TNSNAMES.ORA file.
3) On the slave, create your mview repgroup:
Hope this helps someone else out there because I could not find any straight forward answers on the subject. I would say the dblink name quirck should be mentioned somewhere as a note. Then again, the do say that your DB should have system parameter global_names=true, which of course would force you to name database links exactly the same as the global_name of the database they are connected to.