走近微软云:SQL Server到Azure数据同步
MicrosoftSyncFramework(微软同步框架)的目标则是实现可通过任何协议实现任何类型数据同步的一个可扩展架构。自2009年10月SyncFramework2.0上市以来,微软SyncFramework开发小组的重点工作就放在了如何扩展同步框架功能上,其中就包括了如何在SQLServer上实现基于微软云数据库同步服务,此服务和功能已经演变为现今网络上赫赫有名的微软SQLAzure服务。
虽然现有的ADO.NET提供程序已能与SQLAzure进行同步,但微软还是重新创建了一个同步提供程序以提高执行效率并保证与SQLAzure进行数据同步的可靠性。MicrosoftSyncFrameworkPowerPackforSQLAzure包含了全新的提供程序、SqlAzureSyncProvider和其它自动化工作。
SQLAzureDataSync数据同步工具为用户提供了配置向导,以帮助用户在SQLSever数据库和SQLAzure数据库之间同步数据并定义同步规则。有了此工具,管理员只需轻点鼠标便可以将企业数据库方便同步到云当中。
VisualStudio2008ProfessionalSP1中也创建了一个名为SqlAzureDataSyncClient模板来缓存SQLAzure当中的数据,以方便地为要使用云数据的应用程序提供脱机数据功能。
组件
MicrosoftSyncFrameworkPowerPackforSQLAzure主要由如下几个部分组成:
1.SqlAzureSyncProvider
微软已经发布了全新的同步框架引擎以扩展SQLAzure同步提供程序,此提供程序被称为SqlAzureSyncProvider。这是一个全新的免费应用程序,它可以使同步框架引擎高效并可靠地完成复杂的SQLAzure云数据处理和同步过程。
2.VisualStudio插件
此插件为VisualStudio2008ProfessionalSP1提供了一个全新的SqlAzureDataSyncClient项目模板,使用这个项目可以实现SQLAzure到客户端同步填充适当程序集引用,其中还会生成一个被命名为Synchronize的类名,以使开发人员可以调用应用程序自动同步到云数据的方法。
3.SQLAzureDataSync数据同步工具forSQLServer
使用该工具向导可以实现SQLServer和SQLAzure之间的数据自动同步。当配置完成时,此工具可以在SQLServerAgent保存同步配置,这样就可以方便我们在任何时间执行同步了。
准备工作
1.确保已经安装了SyncFramework2.0SDK
SyncFramework2.0SDK下载地址为http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254
2.确保在sql.Azure.com已有账户
使用WindowsLiveID登录http://www.microsoft.com/windowsazure/getstarted/#sql
3.确保VisualStudio2008ProfessionalSP1已经安装但未运行
4.确保SQLServer2008已经安装并且没有运行
为获得最佳效果,最好使用SQLServer2008R2版本,其SQLServerManagementStudio已经原生支持了到SQLAzure的同步功能。
5.确保SQLServer代理服务正在运行
在服务中将SQLServerAgen服务配置为"自动"启动。
安装
下载MicrosoftSyncFrameworkPowerPackforSQLAzure,然后双击此MSI安装包并用默认选项进行安装。此时程序会自动为VisualStudio2008ProfessionalSP1设置SQLAzure同步插件,并安装用于SQLServer的SQLAzure数据同步工具。
SyncFramework您可以在微软下载中心找到http://www.microsoft.com/downloads/details.aspx?FamilyID=bce4ad61-5b76-4101-8311-e928e7250b9a&displaylang=en
该工具需要安装到默认路径,如何更改了安装路径,则任何SQLServer作业都需要手动在工具中进行更新。
使用
用于SQLServer的SQLAzure数据同步工具
本部分我们主要演示用于SQLServer的SQLAzure数据同步工具的主要用法,此工具会自动利用SqlAzureSyncProvider以实现SQLAzure和企业内部SQLServer之间的数据同步。
1.在"开始"菜单"所有程序"-MicrosoftSyncFramework中找到并打开"SQLAzureDataSyncToolforSQLServer"。此时启动的向导会对本地SQLServer实例进行配置并自动提供一个用于同步的Azure数据库。点击"下一步"继续。
2.此时请确保服务器名称、数据库名称及与sql.Azure.com所关联的LiveID账户和密码都输入正确。点击"下一步"继续。(图1)
3.输入将要与SQLAzure进行同步的SQLServer实例和数据库名称。(图2)
4.在选择框选择要与sql.Azure.com帐户相关联的数据库表,并将它们添加到同步范围。点击"下一步"继续。(图3)
5.在选择框中通过"MoveUp"和"MoveDown"来调整表的同步顺序并点击"下一步"继续。(图4)
6.同步范围确定以后,还必须指定在本地数据库中指定一个唯一名称,再指定所选的SQLAzure数据库为1GB或10GB类型。点击"Process"来完成配置过程。(图5)
7.打开SQLServerManagementStudio查看SQLServerAgent同步任务名是否已经正确创建。如果已经正常创建,则该同步任务可以在任何时间执行本地数据库到所选云数据库的副本同步。
用于VisualStudio的SQLAzure离线插件
本部分我们主要演示如何使用VisualStudio中新的SqlAzureDataSyncClient项目模板来轻松实现到SQLAzure的数据同步。当添加一个新项目时,SqlAzureDataSyncClient会自动创建一个本地数据存储类以简化整个同步过程。
1.在VisualStudio2008ProfessionalSP1中创建一个控制台应用程序项目
2.该项目被加载后,右击"解决方案资源管理器"窗格,然后悬停在"添加"上,并单击"新建项目"。(图6)
3.向下滚动并选择"SqlAzureDataSyncClient"下的"MyTemplates."--输入一个同步客户端名称--点击"OK"继续。(图7)
4.此时会出现一个"SQLAzureDataSync"数据同步向导,并已经选中"SQLAzureConnection"。此时输入服务器名称、数据库名称及与sql.Azure.com所关联的LiveID账户和密码都输入正确。点击"下一步"继续。(图8)
5.在"SelectTablestoSync"中选择并添加要同步的范围,点击"下一步"继续。(图9)
6.此时同步范围已经确定,我们还需要输入一个同步范围名称,并点击"下一步"继续。(图10)
7.在此步骤中,需要指定本地数据存储文件的路径,并点击"下一步",最后点击"完成"来结束配置。
8.引用会被自动添加到SyncFramework、数据库、XML和SQLAzureDataSync数据同步组件。