利用Contained Database和DAC来开发基于SQL Server "Denali"和SQL Azure之上的应用程序

大家好! 在刚刚结束的Microsoft TechEd China 2011中,我们在分会的一个小时里为大家讲解并演示了如何利用Contained Database和DAC来开发基于SQL Server “Denali”和SQL Azure之上的应用程序。为了能够和更多的开发人员和DBA介绍和分享CDB及DAC,并提供相关资源和工具下载的链接,我们特撰文如下,希望有所帮助。 背景 让应用程序的数据层可以在本地SQL Server服务器、私有云、共有云之间方便的部署、移动、升级和管理,正在迅速成为当前云时代的关键技术之一。SQL Server “Denali” 的新增功能——包含的数据库Contained Database (CDB) 和数据层应用DAC正是为了满足这一需求而研发并推出的。这两项技术在一起所提供的功能,将SQL Server应用程序的开发、部署、和不同环境之间的移动完全流程化了,让开发人员和DBA能够淋漓发挥,游刃有余。 进展 亮点简述 包含的数据库Contained Database (CDB):排序规则和安全认证已经可以内置在CDB中; 数据层应用DAC:BACPAC既包含数据库的元信息,也包含数据;原地升级;可以防止篡改; 代码名为“Juneau”的SQL Server开发工具:基于Visual Studio 2010,可以从现有数据库中提取信息新建项目;智能感知(IntelliSense);可深层验证;版本化build;可声明目标平台,定义服务器选择策略;界面友好直观; 导出导入工具:广泛支持SQL Server 2000(仅支持导出)、2005、2008、2008 R2、SQL Server Denali及SQL Azure。 相关资源及下载: 微软MSDN 英文介绍 “包含的数据库” SQL数据库导入导出工具 微软技术白皮书 英文《SQL Server 2008 R2 中的数据层应用程序》 SQL Server开发工具”Juneau” 微软MSDN 中文 SQL Server论坛 最后,为了让更多的开发人员和DBA了解CDB及DAC,我们会在10月24日进行一个同样内容的网络直播,详细信息和注册请参考http://technet.microsoft.com/zh-cn/hh506399 。…

1

将数据库迁移到SQL Azure云数据库的三种方法——视频教学

讲师:范智华 技术类别:SQL Azure、SQL Server 本视频介绍和演示迁移工具:SQL Server迁移助理(SQL Server Migration Assistant)。 [View:http://wm.microsoft.com/ms/china/technet/howtovideo/sqlserver2008/20110221_DemoMigrateToSqlAzurePartA_v6.wmv] 本视频介绍和演示迁移工具:数据层应用程序(Data-tier Application / DAC)。 [View:http://wm.microsoft.com/ms/china/technet/howtovideo/sqlserver2008/20110221_DemoMigrateToSqlAzurePartB_v6.wmv] 本视频介绍和演示迁移工具:脚本生成向导(Generate Script Wizard / GSW)。 [View:http://wm.microsoft.com/ms/china/technet/howtovideo/sqlserver2008/20110221_DemoMigrateToSqlAzurePartC_v6.wmv]


将数据库迁移到SQL Azure的三种工具

对于很多SQL Azure用户来说,使用SQL Azure的第一步就是将已有的数据库迁移到SQL Azure。下面我将向你介绍帮助您迁移数据库的三种工具。 一、SQL Server迁移助理(SQL Server Migration Assistant) 首先介绍的是SQL Server迁移助理(SQL Server Migration Assistant,SSMA)。它有分别针对Access、MySQL、Oracle、Sybase的几种版本。这里我们以SQL Server Migration Assistant 2008 for Access v4.2 为例。 1、先从File菜单打开迁移向导(Migration Wizard)。    2、然后在“创建新工程”(Create New Project)这一步,将迁移到(Migration To)修改为SQL Azure。这是需要注意的关键步骤,因为默认的选项是SQL  Server。 3、然后, 我们把Access数据库加入到向导中,稍候几秒钟之后,这个向导就会列出Access数据库中的所有表和查询等对象,以供选择。    4、选择好需要迁移的对象之后,下一步,我们需要提供SQL Azure的服务器和数据库名称及登录信息。一般来说,这时我们可以在自己的SQL Azure服务器上创建一个空白数据库。   5、最后,迁移的核心开始执行了。在这一步中,迁移助理先把Access中的对象(包括表、主键、外键、约束等等)转换成SQL Azure中对应的对象,并在SQL Azure数据库中创建这些对象,然后再把表内的所有数据行转换并载入SQL Azure数据库中。对于转换对象的过程,迁移助理生成了详细的报告。我们可以点击Report按钮来浏览。    二、数据层应用程序(Data-tier Application,DAC) 通过数据层应用程序(Data-tier Application,缩写为DAC),我们可以将SQL Server中的数据库的Schema提取出来,并且可以方便地将Schema布署到SQL Azure上。数据层应用程序DAC已经集成在SQL Server Management Studio (2008 R2) 与Visual…

1

2010年:给SQL Server DBA的三个建议

这些天里我真应该写一篇Blog,题目就叫“我在客户见面会上被问过的笨笨问题”。当然,这很危险——某位客户也可以写篇类似的Blog,题目叫“我从Donald Farmer那里得到的愚蠢回答”。不过,有一天某位CIO倒问了我一个非常好的问题: “我们一直在投资培训DBA所需的那些核心技能,但除此之外,如果我们有几个小时或一个礼拜的机会培训他们一些新技能,你建议应该培训哪些方面?”在随后与她的Email交流中,我给出了本文中余下部分的建议。 在新的一年里,你将看到我们发布的SQL Server新版本:SQL Server 2008 R2。我们希望这个版本里能有你们DBA喜欢的东西。和以往一样,可能有些新特性与你们的业务紧密相关,立刻就能用上;有些特性也许慢慢会用上;而有些特性虽然有趣,但你们并不打算使用。所以总的来说,我建议利用这额外的培训时间做如下三件事:增强你已有的技能、扩展新技能、探索孵化一些试验性的项目。 增强已有的技能 我很少遇到悠闲的DBA。我知道,在现在的业务中他们要管理比以往都多的物理服务器。而且,伴随着服务器整合和虚拟化,他们还要管理越来越多的数据库实例,以及更多的数据。所以,如果我只建议一个SQL Server 2008 R2新特性让你们透彻研究的话,那就是新版本中对多服务器和多应用管理的改进。我们组在这方面写了个很不错的白皮书:http://bit.ly/6yVmOL。你将会发现这是个本质的特性,能帮助你在新的一年里节省投资并且管理一个健康的数据库环境。 扩展新技能 当我们2005年第一次在一起谈论SQL Server时,我们评论了DBA职责范围的变化。在SQL Server中,他们不仅要管理数据库,还要管理报表、OLAP服务器和ETL流程。我知道DBA们认为这是一件好事。他们不仅“掌控数据”,而且掌控了所有的外围服务——这些服务整合、增强和解释了数据。在SQL Server中这些是相对容易的事,因为和这些服务相关的开发和管理环境已经高度集成在一起了。但是,我建议DBA们应该钻研另一个新领域:SharePoint。SharePoint是一个新的管理体验,有很多的新东西要学。但是这是很值得的,为什么呢? 这不仅因为SharePoint是我们增长最快的服务器产品,而且因为它是我们协作平台的心脏。因为以上原因,SharePoint正快速地成为对商务智能至关重要的产品。你们当然听说了PowerPivot(www.powerpivot.com上有很多资料,而且还提供自己动手的实验室)。我想在你们组织中,对PowerPivot的采用会是部门级的——我不认为你可以阻止那些市场部的家伙。这样的话,我可以见到你的DBA们会要做很多事,不仅是提供数据,并且要管理基础设施。在PowerPivot for SharePoint方面,已经有一些很不错的Blog了: www.powerpivotgeek.com和www.powerpivottwins.com。如果你想给DBA们一个研究SharePoint的开始,Arpan Shah的Blog上有一些很不错的培训链接:http://bit.ly/5Ez7xT。 探索和孵化 最后一方面,我一直认为做实验是件好事。即使你并不打算去立刻应用一项技术,多学点经常能发现一些有用的案例。而且,当某一天CEO从他最新的商业杂志中抬起头来问“我们是不是该试试这个啊?”,整个团队都已经有所准备了。今年,我保证他会问云计算方面的事。幸运的是,我们第一个重要的云计算关系数据库系统——SQL Azure—— 是很容易做实验的。实际上,开发和管理工具基本上和你现在用的一样。他们团队有个Blog提供了很多信息: http://bit.ly/7zdfAJ。我并不是建议你现在就把所有的应用都移植到云上去(不过你要是打算这样做的话,告诉我一声,我也可以帮助你)。但是,我确信你和你的团队会发现大量的机会去实验那些新应用。我们会很高兴能在这方面能帮助你。 简而言之,以上就是我对2010年额外培训所做的建议。2010年对SQL Server 而言将是一个好年份,很高兴你们能加入其中。 Donald Farmer 丁晓宁 译 原文链接

1

SQL Server集成服务中的SQL Azure

SQL Azure 是构建在SQL Server技术之上的关系型云端数据库服务。SQL Azure为用户提供了高可用性,可扩展和多租户的数据库服务。用户可以使用现有的T-SQL和关系型数据库知识与工具,在云端方便地构建自己的数据服务。 SQL Server集成服务(SQL Server Integration Services)作为SQL Server商务智能服务的一部分,可以为用户提供企业级的数据整合和数据转换的解决方案。SQL Server集成服务包含了丰富的内置工具,可以让用户实现快速的数据转换和整合。 用户在构建云端数据应用的过程中,往往需要整合来自不同数据端的数据,而端的变化越来越多元。在云端互动的过程中,端也需要根据各自的功能转换云中的数据以满足需求的变化。使用SQL Server 2008 R2 集成服务所提供的数据流组件可以方便的实现云+端的数据整合和数据转换。下面我会就数据从端向云,和从云向端的整合和转换做一简单的介绍。 将端的数据向云整合和转换 我们使用SQL Server的样例数据库AdventureWorks作为端中的数据源,并将其中的[HumanResources].[Employee] 表整合到云中。打开SQL Server Business Intelligence Development Studio,创建一个新的Integration Services工程,并创建好如图1所示的包。图1 端到云的集成服务包 编辑ADO NET Source组件使其指向本地的 [AdventureWorks].[HumanResources].[Employee]数据源。配置好以后我们做一个简单的数据转换,使用Derived Column组件为云中的数据表添加一个新列[Flag],并采用默认值为“I am in Cloud!”。  图2 编辑Derived Column组件 下面我们添加ADO NET Destination 组件和所使用的Connection Manager。打开ADO NET Destination的编辑器,如图3所示。  图3 ADO NET Destination编辑器 添加一个连接到云的Connection Manager,如图4所示,你会发现使用Ado.Net Provider配置一个到云的数据连接,和配置到普通数据源的连接并没有什么不同。 图4 配置ADO…


试用SQL Azure

云计算是现在很热的一个话题,很多人听说过微软的Windows Azure,它是微软基于云计算的操作系统,但微软的Azure服务平台不仅只有操作系统,它是一系列的服务,至少还包括SQL Azure和Azure Platform AppFabric。Azure服务平台即将于2010年元旦正式商用,目前可以申请试用它的CTP (Customer Technology Preview) 版。本文将对试用SQL Azure做一个简单的介绍。 要想试用SQL Azure,你首先需要一个Invitation Code,你可以通过以下网址申请https://connect.microsoft.com/SQLAzure/SelfNomination.aspx?ProgramID=2089&pageType=1 。由于目前申请的人数较多,你可以需要等待一两天才能收到邮件。  图1 申请Invitation Code的页面  有了Invitation Code,你就可以登录https://sql.azure.com/开始试用了。输入你的Invitation Code后,你就可以创建你的服务器和数据库。创建服务器步骤非常简单,如图2所示,你只需要输入用户密码即可,SQL Azure目前不支持Windows认证方式,只支持SQL Server认证方式。 图2 创建服务器 创建数据库也很简单,点击图3中的Create Database按钮后只需要输入数据库的名称和选择数据库的最大大小即可,如图4所示。这里我们输入testdb,大小1GB。SQL Azure支持两种版本的数据库,一种称为Web版,最大为1GB,商用时将每月收取9.99美元,另一种称为Business版,最大为10GB,商用时将每月收取99.99美元。  图3 数据库维护  图4 创建数据库 创建完数据库后,你需要配置防火墙的规则以允许你从远端访问SQL Azure里的服务器,图5是一个例子,我配置了124开始的IP地址都可以访问我的服务器。防火墙的规则可以需要几分钟后才能起作用,如果你连接不上,请稍等一阵再试。  图5 配置防火墙 防火墙配置完成后,你就可以从远端连接你的数据库了(也可以先使用图3中Test Connectivity按钮确认连接)。你可以使用Sqlcmd工具或者SSMS,本文将使用SSMS为例。在SSMS登录时请不要连接对象管理器(Object Explorer),因为SQL Azure中有些视图不存在,对象管理器可能无法正常工作(我的SSMS是SQL 2008 SP1)。请直接新建查询打开连接对话框,如图6所示。  图6 连接对话框 如果你想连接刚才创建的testdb数据库,你需要点击连接对话框里的选项(Options>>)按钮,并在连接属性(Connection Properties)页签里选择连接到testdb,如图7所示。SQL Azure不支持使用USE testdb来切换当前数据库。所以你必须指定数据库名,如果你不指定数据库名,你将会连接到master数据库。  图7 输入要连接的数据库名 在打开的查询窗口中,你可以输入SQL语句创建表,插入数据,或者创建存储过程,执行存储过程等等。我们将执行下面的SQL语句创建table1并插入4条数据。 CREATE TABLE [dbo].[table1](       [column1] [int] IDENTITY(1,1) NOT NULL,       [column2] [varchar](50)…

3