我建了个新表,重做了一遍,还是不行,ALL_REPOBJECT的GENERATION_STATUS还是GENERATED,过程如下:
SQL> execute dbms_repcat.suspend_master_activity (gname => 'rep_group_hour');
PL/SQL procedure successfully completed.
SQL>select gname, master, status from dba_repgroup;
GNAME
M STATUS
------------------------------ - ---------
REP_GP_DAY
Y QUIESCED
REP_GP_HOUR
Y NORMAL
REP_GROUP_HOUR
Y QUIESCING
SQL> execute dbms_repcat.crte_master_repobject(sname=>'usertest',oname=>'testtable2',type=>'table',use_existing_object=>true,gname=>'rep_group_hour',copy_rows => false);
PL/SQL procedure successfully completed.
SQL>SELECT ONAME,TYPE,STATUS,GENERATION_STATUS FROM ALL_REPOBJECT;
ONAME
TYPE
STATUS GENERATIO
------------------------------ ---------------- ---------- ---------
TESTTABLE
TABLE
VALIDGENERATED
TESTTABLE$RP
PACKAGE
VALID
TESTTABLE$RP
PACKAGE BODY VALID
TESTTABLE2
TABLE
VALIDNEEDSGEN
SQL>select ID,GNAME,MESSAGE from dba_repcatlog where gname='REP_GROUP_HOUR';
ID GNAME
---------- ------------------------------
MESSAGE
--------------------------------------------------------------------------------
28 REP_GROUP_HOUR
19 REP_GROUP_HOUR
ORA-23419: regenerate replication support before resuming master activity
SQL> execute dbms_repcat.generate_replication_support('usertest','testtable2','table');
PL/SQL procedure successfully completed.
SQL> SELECT ONAME,TYPE,STATUS,GENERATION_STATUS FROM ALL_REPOBJECT;
ONAME
TYPE
STATUS GENERATIO
------------------------------ ---------------- ---------- ---------
TESTTABLE
TABLE
VALIDGENERATED
TESTTABLE$RP
PACKAGE
VALID
TESTTABLE$RP
PACKAGE BODY VALID
TESTTABLE2
TABLE
VALIDDOINGGEN
TESTTABLE2$RP
PACKAGE
VALID
TESTTABLE2$RP
PACKAGE BODY VALID
6 rows selected.
SQL> select ID,GNAME,MESSAGE from dba_repcatlog where gname='REP_GROUP_HOUR';
ID GNAME
---------- ------------------------------
MESSAGE
--------------------------------------------------------------------------------
29 REP_GROUP_HOUR
19 REP_GROUP_HOUR
ORA-23419: regenerate replication support before resuming master activity
30 REP_GROUP_HOUR
SQL> select gname, master, status from dba_repgroup;
GNAME
M STATUS
------------------------------ - ---------
REP_GP_DAY
Y QUIESCED
REP_GP_HOUR
Y NORMAL
REP_GROUP_HOUR
Y QUIESCED
SQL> execute dbms_repcat.resume_master_activity('rep_group_hour',false);
PL/SQL procedure successfully completed.
SQL> select gname, master, status from dba_repgroup;
GNAME
M STATUS
------------------------------ - ---------
REP_GP_DAY
Y QUIESCED
REP_GP_HOUR
Y NORMAL
REP_GROUP_HOUR
Y NORMAL
SQL> SELECT ONAME,TYPE,STATUS,GENERATION_STATUS FROM ALL_REPOBJECT;
ONAME
TYPE
STATUS GENERATIO
------------------------------ ---------------- ---------- ---------
TESTTABLE
TABLE
VALIDGENERATED
TESTTABLE$RP
PACKAGE
VALID
TESTTABLE$RP
PACKAGE BODY VALID
TESTTABLE2
TABLE
VALIDGENERATED
TESTTABLE2$RP
PACKAGE
VALID
TESTTABLE2$RP
PACKAGE BODY VALID
6 rows selected.
SQL> select ID,GNAME,MESSAGE from dba_repcatlog where gname='REP_GROUP_HOUR';
ID GNAME
---------- ------------------------------
MESSAGE
--------------------------------------------------------------------------------
19 REP_GROUP_HOUR
ORA-23419: regenerate replication support before resuming master activity
SQL> select job,this_date,next_date,broken,what from user_jobs;
JOB THIS_DATE NEXT_DATE B
---------- --------- --------- -
WHAT
--------------------------------------------------------------------------------
68 11-AUG-06 11-AUG-06 N
declare rc binary_integer; begin rc := sys.dbms_defer_sys.push(destination=>'L
OG.TEST.COM@HOUR', delay_seconds=>50, parallelism=>1); end;
69 11-AUG-06 N
declare rc binary_integer; begin rc := sys.dbms_defer_sys.purge( delay_seconds=>
0); end;
67 11-AUG-06 N
JOB THIS_DATE NEXT_DATE B
---------- --------- --------- -
WHAT
--------------------------------------------------------------------------------
dbms_repcat.do_deferred_repcat_admin('"REP_GROUP_HOUR"', FALSE);
|