3 Replies Latest reply: Feb 28, 2013 4:02 AM by spajdy RSS

    big update on a replication


      I need to run an update on a big table that is being replicated using oracle advanced replication.
      I don't want the replication to run the update on the second side, but I want to run the update myself on both sites.
      how can I do this?
      I understand I can suspend the replication using
      -- Stop Replication
      EXECUTE Dbms_Repcat.Suspend_Master_Activity(gname => 'MYREPGRP');
      -- Start Replication
      EXECUTE Dbms_Repcat.Resume_Master_Activity(gname => 'MYREPGRP');
      But when I will start it it will start the update again on both sites. how can I stop the update when the replications starts again?

        • 1. Re: big update on a replication
          Dou you have set up Mutli-Master replication or Master-Snapshot replication ?
          If you have Master-Snapshot replication are snapshots updateable ?

          When you want to do big update and don't replicate it but do it on every site tehn in general you have to:
          1/ do refresh/ push all deffered transaction to get all sites to same consistent state
          2/ stop replication
          3/ do same update on all sites
          4/ start replication again

          When replication it stopped you must prevent bussines users from using the application.
          • 2. Re: big update on a replication

            Thanks for the answer,
            But when I will resume th replication wouldn't it try to replicate the update? even though it was done on both sides?

            • 3. Re: big update on a replication
              What replication model are you using ? Multi-Master or Master-Snapshot.
              There is package dbms_reputil with replication_on and replication_off procedures. You can disable replication in session by calling it.
              I used then in Master-Snapshot configuration with updatable snapshots.
              I suppose that it will work in Multi-Master configuration too.