Re: ** how to kill a replication request

--- A Joshi <ajoshi977@xxxxxxxxx> wrote:
> Hi,
>   Can some one tell how I can kill a request to
> suspend/resume of replication group. If I give a
> suspend of wrong group or from wrong user and it
> goes to 'QUIESCING' for a long time. Thanks


Hi AJ,

BEFORE PROCEEDING, PLEASE REVIEW AND BE SURE OF WHAT
YOU WANT TO DO!!!

Referencing Metalink doc <180014.1>

"When you suspend activity on a master repgroup,
Oracle will attempt to push all waiting transactions
in deftrandest at all sites where the group resides to
the remote sites. This step can not be avoided and
while this step is being performed, the repgroup
remains in the Quiescing state. Once deftran has been
cleared, the repgroup then becomes quiesced. A
repgroup cannot become quiesced until all deferred
transactions have been pushed. If there are any
problems pushing the transactions, the repgroup will
remain 'stuck' in quiescing mode."

So replication will not quiecse until all deferred
transactions have been pushed.

> how I can kill a request to
> suspend/resume of replication group.
Again, referring to the above note:

"However, if you have issued suspend then realised the
whole queue will have to be pushed and so issued a
resume in an attempt to get replication working again,
do the following:  

Connect to the master definition site as repadmin and
resume activity on the repgroup :    

execute dbms_repcat.resume_master_activity('<gname>');
"

So 
STEP 1
Re-start rep activity
----------------------
execute dbms_repcat.resume_master_activity('<gname>');

STEP 2
Delete the SUSPEND_MASTER_ACTIVITY 
-----------------------------------
Delete the request that you submitted when you tried
to quiesce:

QUERY I
select id, request, status, master 
from dba_repcatlog;

Above query lists the requests awaiting in the queue. 
You should see one that says SUSPEND_MASTER_ACTIVITY
and it's associated ID.

STEP 3
Delete the SUSPEND_MASTER_ACTIVITY that was submitted
------------------------------------------------------
exec execute
dbms_repcat.purge_master_log('<id>',null,null)

where id is the id that references
SUSPEND_MASTER_ACTIVITY which you should get from
QUERY I.  

So now the only entry you should see is the
RESUME_MASTER_ACTIVITY when you re-run QUERY I.

STEP 4
Resume Replication Activity
---------------------------
Now resume activity by executing:

exec dbms_repcat.do_deferred_repcat_admin('"<gname>"',
FALSE); 

Again, please refer to the above Metalink doc for
further details.


hth

--
mohammed




        
                
__________________________________ 
Celebrate Yahoo!'s 10th Birthday! 
Yahoo! Netrospective: 100 Moments of the Web 
http://birthday.yahoo.com/netrospective/
--
http://www.freelists.org/webpage/oracle-l

Other related posts: