Database synchronization needs of multi-location enterprises

Recently during my interaction with one of our colleagues there came a discussion about using the same database replicated or making available across multiple locations. In the advent of various connectivity options exists these days and when people are talking about cloud based apps and implementation why is this need. This post is a search of an answer for that.

Business needs for multi-location enterprise solutions:

  1. Requires using one application across the enterprise to ensure data integrity and single version of truth.
  2. Get to know the data of what’s happens in other locations or other manufacturing or outlets.
  3. Helps to plan and react better based on the data insights available from other locations.
  4. Process control and improvement across the enterprise with a single solution
  5. Low training cost

Challenges in accomplishing these business needs:

  1. Lack of connectivity or poor connectivity between the locations
  2. Higher bandwidth costs or complex internet solutions required to support the enterprise needs
  3. No control or process enablement in the locations or facilities
  4. Enterprise applications does not support the scenarios of multi-location with better control on data and process
  5. Processes and applications established at locations without understanding the impact of connectivity and process issues
  6. Limited accountability and responsibility at the locations in comparison with corporate or head quarters

Solutions or options are available for us:

  1. If we are very sure about the connectivity and availability we can adopt cloud based solution which resolves problems for once for all
  2. When there is connectivity issues, we might need to resort to Database synchronization options which would be more feasible to manage enterprise applications
  3. The key things to these kind of scenarios is to identify the following with respect to data:
    1. Who is the data owner?
    2. Who has to create it?
    3. Where it has to be created?
    4. Who is going to consume it?
    5. Is it required real-time?
    6. What controls to be established upon the data?

Related articles for more reading:

http://blogs.msdn.com/b/sync/archive/2009/12/14/how-to-synchronize-multiple-geographically-distributed-sql-server-databases-using-sql-azure-data-sync.aspx

http://www.comp.dit.ie/btierney/Oracle11gDoc/server.111/b28324/tdpii_repcont.htm

https://docs.oracle.com/cd/B28359_01/server.111/b28281/architectures.htm