
SQL Server Utility的开启基础是Utility Control Point (简称UCP),UCP提供了一个用于存放所有被托管实例信息的数据存储中心,同时也提供了用于查询各被托管实例情况的管理访问中心。DBA将某个SQL Server实例注册到UCP中后,新纪一组数据收集代码作业就会被注册到这个被托管实例上,开启这些作业每个15分钟运行一次,数据他们的管理主要任务是收集并上传被托管实例相关的信息,例如资源利用率、新纪DAC配置等等。开启 SQL Server Utility通过UCP实现的数据目标不仅仅是收集信息,还有一项同样重要的管理任务就是提供一种称之为资源利用策略的对象,通过这种策略对象,新纪SQL Server Utility将可以帮助用户判定某个实例、开启某个DAC是数据否健康。 
Data-Tier Application 另外一个DBA越来越多在SQL Server 2008 R2介绍中看到的管理词就是DAC,它的全称其实是Data-Tier Application Component。 Data-Tier Application其实是企商汇一个包含了几乎某一应用所需要的数据库及实例对象的实体,例如表、视图、存储过程、登录等等。请注意实体这个概念。有了实体这个概念,也就意味着这些原本独立的对象现在可以被视为一个更大的对象,因此可以被开发人员打包部署、管理员整体维护,配合上面我们介绍的SQL Server Utility我们甚至可以将那些原本独立的对象视为一个应用进行统一的监控和管理,更为关键的是在升级过程中如果有这个整体对象的概念,升级过程中所涉及的版本控制问题也会变得更为简单。 看一下当前我们的工作流程。如果开发人员发布了一个新的应用,首先开发人员会准备一堆的脚本、代码、应用,然后一一部署到某个测试实例上,源码库然后通知用户在这个测试实例上进行功能、业务、UAT一系列的测试。当测试结束后,DBA就需要收集这些脚本、代码以及应用,并将它们部署到生产实例上。噢,首先当然DBA还要确定哪个生产实例更加适合部署这个新的应用。这还不是***挑战性的,正如前面所说,如果这个应用是一个升级版本……,天哪,DBA和开发人员可能还要坐下来讨论一下详细的升级过程,哪些对象需要更新?怎么更新这些对象?更新过程中怎么保证数据不受影响? 如果使用Data-Tier Application呢?开发人员只需要在Visual Studio 2010中通过一种被称为Data-tier Application的项目模板创建一个新项目,而后在其中定义前面提到那些对象——脚本、代码、应用等等,而后将这个项目打包成一个DAC的包 (dacpac文件) ,然后将其发布到测试服务器。注意不再是一个一个安装、运行,而是通过SSMS中的高防服务器Data Tier Application管理节点直接加在这个包文件,这样就可以直接将所有相关对象注册到当前数据库引擎实例上。 
在升级场景中Data-Tier Application的优势就更为明显了。原本开发人员需要为一个新版本准备N套脚本,一套是全新安装,而剩下是从某个特定版本升级到当前需要发布的版本。如果使用的是Data-Tier Application,开发人员只需要为新的版本编译出新的包文件,在数据库引擎部署这个新版本DAC包的时候,部署人员只需要定位到现存的DAC然后选择升级功能,升级向导会自动比对数据库引擎中已经部署的版本和准备部署的版本差异,然后自动确定需要执行的操作。 
在一个DAC项目中,开发人员可以定义: DAC的自身属性,例如应用名称、版本等等 所有数据库级别的对象,例如表、视图、存储过程 所有数据库引擎实例级别的对象,例如登录 部署服务器需求策略,例如所需SQL Server实例版本号、操作系统版本号、硬件架构等等 其他辅助文档,例如数据生成计划、部署前准备脚本及部署后清理脚本等等 总结语 SQL Server Utility提供了一个多实例管理的新思路,而Data-Tier Application则提供了一个数据库管理的新方法。结合这两项技术,SQL Server 2008 R2毫无疑问会对DBA的工作产生深远的影响,另外一个毫无疑问的结论是,对于当前越来越庞大的基础架构规模和应用规模,这两项技术所产生的影响一定是正面积极的。 了解了这么多,***的办法是什么呢?当然是下载一个SQL Server 2008 R2的测试版,赶紧亲身体验一下。 |