I have a scenario as explained below and I need to implement the best Data Sync method.
- I have a centralized SQL Azure database (master Database)
- There are about 20 (this will increase in future) on-premises SQL Server Databases. These database are not necessarily always connected to the internet.
- All master and on-premises DB's will have the same schema/table structures.
- I would like to do bidirectional data sync between all on-premises databases with SQL Azure and vice-versa.
- Data Sync frequency will be once in a day.
- Each on-premises DB size is reasonable(not too big and not too small).
These below options I have explored:
- SQL Azure Data Sync
- Microsoft Sync Framework
- SQL Server 2008 Change Data Capture
- SQL Server Change Tracking
I would like to know the best possible method to achieve this.
items #3 and #4 in your list are not really synchronization solutions, just part of it. Both SQL CDC and SQL CT simply allows you to track the changes. you have to put in extra code to grab those changes and apply/sync to another database.
SQL Data Sync service will be your best option if you don't want to write code. Note that up until today (despite the fact its in preview for so long), Data Sync is still in Preview Mode.
If you're find writing code, Sync Fx is a good option as well (SQL Data Sync internally uses Sync Framework).