Sql-server – snychronize multiple databases using database replication

replicationsql-server-2008-r2

As I show in the picture , I have three database servers (different town location) and client computers each one is running software.
Database schema for those three servers are same.
enter image description here
And now I have to synchronize those three servers.
So I upload the database to smarterasp.net.
I want to access this database from different local server and synchronize every Transaction ( Insert,Update,Delete ).

enter image description here

I found SQL Server Replication and there are three types of replication

  • Transactional replication
  • Merge replication
  • Snapshot replication

What approach should I use for this ?
Or any other way which is more suitable ?

Note: Sometime , the local server may be offline due to the condition of internet connection.

Best Answer

The best match for occasionally disconnected clients and bidirectional replication is merge replication.

Other flavours of replication support bidirectional replication, but transactional replication with updateable subscriptions is deprecated and peer-to-peer transactional replication is more suitable for high-speed low-latency links rather than remote sites.

Merge replication also offers the ability to synchronize over an HTTP connection, using an IIS ISAPI filter.

Merge replication allows you to define partitions of data and let each subscriber access a subset of the data. You could have a central database containing all the data and each subsidiary containing only the data that pertains to that subsidiary. This is accomplished by using join filers and/or static filters.

The only downside to merge replication is its performance toll: each table that you decide to publish has to be monitored for changes by a system-generated trigger and every published table (article) needs to contain a uniqueidentifier column (it gets added automatically in case it's missing).