RE: Bi-Directional replication

  • From: Neil Chandler <neil_chandler@xxxxxxxxxxx>
  • To: "mark.van.de.wiel@xxxxxxxxx" <mark.van.de.wiel@xxxxxxxxx>, "rjanuary@xxxxxxxxx" <rjanuary@xxxxxxxxx>, "vkeylis2009@xxxxxxxxx" <vkeylis2009@xxxxxxxxx>
  • Date: Tue, 27 Sep 2016 15:03:26 +0100

I agree with Mark and Ryan. Here's a few thoughts from me:

- Don't do it! It's complex and a bit dangerous. Get it wrong and you have 2 
(or more) corrupt DB's.
- Don't use Table-based sequences (e.g. for a no-gap sequence): you can't have 
no-gap sequences. 
- If you are using SEQUENCEs, don't replicate them but ensure they can't 
produce the same value in each DB. In the past I have used stepped increments 
(DB-1: start with 1 increment by 10: DB-2 start with 2 increment by 10: DB-3 
start with 3... etc) so rows from DB-1 always end in a 1, etc... Don't start 
one at 1,000,000,000,000 and the next at 2,000,000,000,000.
- database should be in forced logging mode with plenty of supplemental 
logging to support the keys - so you're going to get (a bit) more redo.
- Every table should have a PK or UK. If it doesn't, add a surrogate one. 
Trying 
to uniquely identify rows with multiple columns will require lots of 
extra redo supplemental logging (all columns) at the very least.
- consider how you will *prove* you have the same data in all DB's. What is 
your reconciliation process?
- Can you replicate the DDL for schema change? This can make life a lot simpler 
(I'm not knowledgeable about DBVisit, only Goldengate) when keeping the DB's 
aligned if the tool will do it for you. Doing it manually can be particularly 
painful.
- you will get conflicts. you need to consider the conflict resolution rules 
carefully as when you have a conflict that is not auto-resolved by a rule, all 
replication will stop until you resolve it introducing significant replication 
delay.
- You will probably have problems with encrypted or compressed tablespaces - 
check with the vendor.
- Remember, a replicated DB is not a backed-up DB. As I have had to explain to 
a client in the past.

Look at MOS Article "1296168.1" which gives a scripts which will review your 
current schema for GoldenGate Classic Capture, which is basically the same 
method as used by DBVisit to extract transaction change vectors.

regards

Neil Chandler



[snip]


      
      
        
          
            On Sep 26, 2016, at 5:04 PM, Vadim Keylis <vkeylis2009@xxxxxxxxx>
              wrote:
            
            
              Good afternoon everyone. I am
                working on designing POC  bi-directional replication
                between two data centers using dbvisit application. What
                are the general best practices when designing database
                for bidirectional replication ? What are the general
                design consideration should be made from your experience
                for bi-directional replication?
                

                
                Thanks so much in advance,
                Vadim
              
            
          
        
        

      
    
    

  

--
//www.freelists.org/webpage/oracle-l                                       ;
  

Other related posts: