且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SQL Azure(十) SQL Azure Data Sync数据同步功能(上)

更新时间:2022-09-19 14:34:30

  首先举个简单的例子:如果某个大型生产企业包含有2个子系统:

-  有一个《产品生产系统》放在企业内部部署,在企业内部办公的员工(生产员工)都可以通过内网来访问该系统。后台的数据库是局域网内的SQL Server 2008 R2。

-  另外有一个《产品库存系统》放在Windows Azure平台上运行。在企业外部的员工,比如销售人员可以通过手机、平板电脑等快速访问,查看库存状况以便及时进行销售行为。后台的数据库采用的是微软的SQL Azure云端数据库。

  那这样就会出现一个问题:如何让SQL Server Database的数据库与SQL Azure云端数据库保持一致性,方便生产人员和销售人员协同的工作?

  SQL Azure Data Sync就能实现这一功能。它的核心是以Sync Framwork为技术,能够进行 "云数据库--云数据库(Cloud to Cloud)"和"云数据库--本地数据库(Cloud to Local)"的同步。

-  如果要实现Cloud to Cloud的功能,必须创建两个不同的SQL Azure Database

-  如果要实现Cloud to Local,必须创建一个SQL Azure DB;本地使用SQL Server DB。

  Data Sync使用过了一个叫"数据中心(Hub Database)"的概念,通过Hub Database的整合,让不同数据库(on premise DB and on cloud DB)的同步能够更加顺畅。这个Hub Database是位于微软的数据中心内的。

  看到这里,可能有些网友会提问:为什么我们要使用Hub Database呢?其实这个Hub Database起到了一个仲裁的作用。我们还是举之前工厂生产的例子:如果因为工厂停电的原因,产品的库存为0,销售人员就不能进行正常的销售。在恢复电力供应的情况下,从流水线上又生产出新一批的产品,总数为1000个,员工在本地SQL Server 2008 R2中将库存数量改为1000;但这是SQL Azure的库存状态为0(没错,因为没人去修改它)。 Hub Database这时候会自动在后台运行,分别查询Local DB和Cloud DB,发现库存状态的值不同。根据Hub Database的策略(可自定义),我们可以设置以Local DB为准,这时候Hub DB会将1000这个值写到Cloud DB同样的表所对应的值里面。这样就让Local DB和Hub DB同步了。

  显而易见,SQL Azure Data Sync为您和您的企业提供了很多好处:

  • 无需编写代码就可创建各种复杂的同步。
    •   Microsoft SQL Azure Data Sync支持一个数据中心或地理位置分散的多个数据中心的多个数据库的同步组。每个同步组都可根据您的业务需求进行定制,从而减少开支。
  • 无需创建和管理您自己的云便可利用Microsoft Windows Azure平台和Microsoft SQL Azure
    •   让Microsoft 处理所有基础结构、安全性和缩放问题,您只需专心管理业务即可。 

本文转自Lei Zhang的博客博客园博客,原文链接:http://www.cnblogs.com/threestone/archive/2012/03/26/2417757.html,如需转载请自行联系原作者