51CTO技术论坛_中国领先的IT技术社区's Archiver

xiaoxinlucky 发表于 2008-1-3 15:28

向SQL Server 2005迁移-SQL Server 2005部署与特性实施

[img]http://298853.blog.51cto.com/album/288853/119933679192.jpg[/img]

[b]目录[/b]
执行总结
简介
SQL Server 2005技术支持鼓励计划概述
微软实施SQL Server 2005特性的概述
升级到SQL Server 2005
安装选项
升级计划
部署前准备事项清单
生产环境下部署的清单
安装后续工作的清单
SQL Server 2005特性的优势
FeedStore实施
MS Sales实施
SAP R/3实施
微软会计报表系统实施
集中报表系统实施
最佳实践与收益
总结
了解更多信息
附录
实施工具

[b]商业情景[/b]
在微软内部运行着超过800个SQL Server实例,微软 IT部门需要提高它已有商业应用的扩展性和可靠性来满足不同商业团体的需求。除此之外,商业团体还需要增强其商业应用的功能,以便用户可以做成更符合商业需求的决策和战略

[b]解决方案[/b]
微软IT部门 部署了SQL Server 2005 ,来提供更加强健,可靠,稳定和富于扩展能力的平台,服务于其现有的商业应用。并且,SQL Server 2005的新特性使得微软IT部门可以用更对的总体拥有成本开发更加智能的解决方案,来更好的满足不断变化的商业需求。

[b]获得收益[/b]
·      SQL Server 2005运行在64位平台之上,使得微软IT部门巩固和扩展其现有的商业应用程序,达到更好的性能
·      更多新的特性,如.NET CLR集成和SQL Server Service Broker ,帮助微软IT部门创建可靠而富于扩展能力的企业级解决方案
·      使用Integration Services,微软IT部门可以在现有的商业应用间运行更复杂的ETL操作,使处理时间减少80%
·      像数据库镜像这样的特性可以提高现有商业应用程序的可用性和可恢复性
·      增强的企业级分析和报表平台提供了对关键性能指标的实时监查,有利于商业数据价值的深入挖掘
·      数据表分区可以把高商业应用的查询性能提高70%,还能把查询尺寸从180KB减少到5KB
·      增强的安全特性和数据加密技术,帮助保护敏感的数据信息

[b]产品与技术 [/b]
·      Microsoft SQL Server 2005
·      Microsoft Windows Server 2003
·      Microsoft .NET Framework 2.0

[b]执行总结[/b]
微软自身的商业需求导致了对可以提供实时信息和商业智能的企业级解决方案的需要。Microsoft® SQL Server™是一件利器,提供满足微软需求的核心功能特性。随着每个SQL Server版本的发布,其核心功能特性都在发展,也恰恰满足了微软商业集团日益增长的需求。Microsoft SQL Server 2005是迄今为止功能特性最为齐全的一个版本,提供了在企业信息管理,企业开发效率,和企业应用性能等方面巨大提升。
为了给微软商业集团提供企业级的扩展性,可靠性和强大的平台,微软信息技术(Microsoft Information Technology,Microsoft IT)部门从2004年早期就开始使用SQL Server 2005的初步版本。为了推动内部和外部的客户早期采用SQL Server 2005平台,Microsoft IT创立了技术支持鼓励计划(Technology Adoption Program,TAP)。这一计划提供了应用,开发,测试,展示,和分析反馈的基础服务。这一计划的成果是,大多数使用Microsoft SQL Server 2000的内部应用都已经升级到了SQL Server 2005,或正在计划向SQL Server 2005转移。
转移到SQL Server 2005平台后,Microsoft IT能够通过提供整合的分析和报表平台,帮助微软的商业团体对不断变化的市场情况做出更好的决策和响应,带来了实时的商务洞察力,从而最大化协同商务的效果。不只如此,SQL Server 2005中集成的开发工具帮助Microsoft IT在企业级的解决方案中自动的分配任务和工作来满足商业战略的需求。得益于对64位硬件系统的支持,采用SQL Server 2005可以明显的改进企业应用程序的性能,并且极大的提高已有或新应用的可扩展性。
微软的FeedStore的中央信息存储系统,其容量超过2TB,是最早转向SQL Server 2005的应用之一。这一存储系统提供一个集中的企业数据整合入口,对和FeedStore进行数据交互的各种系统提供支持。另一个被Microsoft IT升级到SQL Server 2005的企业级应用是MS Sales。这一应用包含超过40台服务器,对与收入相关的企业决策提供唯一的支持。还有,Microsoft IT对微软内的企业资源规划(enterprise resource planning,ERP)系统——SAP R/3也进行了升级,现在SAP R/3应用已经开始使用很多新的特性了。Microsoft IT部署了SQL Server 2005 Analysis Services和SQL Server 2005 Reporting Services,用来增强微软会计报表系统(Microsoft Accounting Reporting System,MARS),提供更加强健财务文档报表功能。Microsoft IT还使用新的SQL Server Integration Services组件来加强在LOB应用间的解析,转换,加载(extract-transform-load,ETL)操作。
Microsoft IT将其各个LOB应用转向SQL Server 2005,从而获得了巨大的好处。提高的可用性,客观的性能提高,更加强健和可扩展的解决方案帮助Microsoft IT从更高的层次满足了商业需求。使用SQL Server 2005中的新特性和工具,Microsoft IT能够用更低的成本,更快速开发和部署新的解决方案。
部署SQL Server 2005的大小和复杂度变化很大,从单一实例的SQL Server到高复杂性的多层,多实例商业解决方案。对于这些部署,Microsoft IT总结出了一套通用方法,包括项目规划向导,部署前清单,实施脚本,以及部署后检查清单,用来帮助保证成功的升级到SQL Server 2005。并且,Microsoft IT对每个完成的部署都总结并成文了一系列最佳实践,用来帮助未来的实施。
迁移到SQL Server 2005确实是挑战。在微软,由于已经有大量的应用被升级到了SQL Server 2005 ,Microsoft IT积累了大量的知识,可以帮助其他的组织更好的迁移到SQL Server 2005。这些知识涵盖升级到SQL Server 2005所需要的规划,部署前准备,展示,和部署后需要完成的任务。
本文适合于那些企业商业决策者,技术决策者,IT架构师,数据库开发人员,数据库管理人员,和部署管理者。尽管本文根据Microsoft IT的早期实践经验,提供了很好的建议,但它不是被用来作为一个正式的过程指导。每个企业的环境都有其独特的情况,因此,每个企业都应该将本文提供的这些知识与自己的实际商业需求良好的结合。

[b]注意:处于安全性的考虑,本文的样例中内部资源,组织和安全性文件的名称都不是实际在微软内部使用的,只是用作演示目的。[/b]

[b]简介[/b]
Microsoft IT不只给微软提供IT服务,它还充当了微软最新服务器和商业生产力软件的早期客户角色。由于Microsoft IT的实际需求涵盖了大多数公司所面临的技术挑战,Microsoft IT用于部署这些技术的方法和从中所获得的经验经常会对其他采用微软产品公司的部署和运营有很好的指导意义。而且由于Microsoft IT从产品最早期的版本开始就开始试用,直到正式发行的版本,因此它提供了有关产品特性和功能方面很多富有价值的反馈和建议。这些反馈提高了产品的质量,并且帮助微软的客户和伙伴成功的采用这些产品和技术。

[b]SQL Server 2005技术支持鼓励计划概述[/b]
[color=#808080]“SQL Server 2005[/color]是企业级的:从Beta2开始,我们最重要的商业数据库都直接在生产环境中,运行在 SQL Server 2005之上。作为微软第一个和最好的顾客,当我们要客户部署这些环境前,在Microsoft IT内运行我们自己的产品,是至关重要的。[color=#808080]”[/color] —— Rich Mullins  高级项目经理 Microsoft IT
为了推动SQL Server 2005的早期采用,Microsoft IT创立了TAP,帮助内部和外部的客户配置和实施pre-RTM版的SQL Server 2005。这一计划框架包括如下内容:
·         [b]紧密合作[/b]. SQL Server 2005开发团队与Microsoft IT或外部客户紧密配合,帮助确认客户的架构,开发,测试,和项目计划。而且,开发团队还将客户对SQL Server 2005的预期编写成文档,以确保实施的成功。
·         [b]开发与测试[/b]. 专门的SQL Server支持专家与Microsoft IT或外部客户一起工作,进行测试和配置,直到最后的发行版本。这些支持专家确认并及时解决各种问题,帮助保证新版本的成功部署。客户支持专家们可以利用额外的SQL Server 开发资源来补充实施特别的功能特性,这些开发人员通常和Microsoft IT或外部客户工作在一起,帮助确保这些特性的成功实施。
·         [b]展示[/b].对那些在SQL Server 2005进行生产环境部署的客户,Microsoft IT把其视作特别的资源,可以帮助内部的部门和外部的客户进行SQL Server 2005的部署。[/b]
·         [b]参考[/b]. Microsoft IT和外部客户一起分享他们进行部署的经验和独特的实施方法,帮助建立一个支援未来工作的知识库。
·         [b]问题检测[/b].在项目的最后,Microsoft IT收集客户的反馈信息,帮助为将来的项目建立更好的基础框架。[/b]
TAP是一个成功的办法,配合指导了在微软内部的SQL Server 2005部署。从SQL Server 2005 Beta 2开始,其上应用的数量就快速的增加,有超过100个的微软内部IT客户,和超过50个的外部客户在上面参与实践。充分的反馈可以产生更好的产品,有超过2000个的bugs被记录并在早期的实践中就得到了解决。TAP背后的主要推动因素是,在产品正式发布前,尽可能的对产品进行测试,并且对内部开发团队进行积极的反馈,以便他们更好的完善产品,改正错误。
[b]微软实施SQL Server 2005[/b]
[b]特性的概述[/b]
大量的微软应用系统被升级到SQL Server 2005,以利用其新特性来获得良好的收益。由于SQL Server 2005里包含大量的新功能特性,本文仅仅讨论在微软内实施的新特性中的一部分,并且给出实施这些功能所带来益处的概要总结。这些特性包括:
·         [b]数据库镜像[/b].这一特性使得Microsoft IT提高了SQL Server实例的可用行。大多数LOB应用使用群集或log shipping来增加系统的可用性。但是,通过使用数据库镜像,Microsoft IT现在可以保证在主服务器上处理的事务,也会在第二服务器上。[/b]
·         [b]增强的硬件支持[/b]. 转向64位平台使得Microsoft IT在很大程度上增强了其LOB应用的扩展性。在部分应用内,实时的性能提高达到了40%。SQL Server 2005里所有主要的服务都完全支持64位模式,可以承载高达512GB的内存,这是一个面向未来长期发展的进步。[/b]
·         [b]集成的工具[/b].同时使用SQL Server Management Studio和SQL Server Business Intelligence Development Studio,Microsoft IT能够使用更有效和直观的方法创建企业级的解决方案。例如,Microsoft IT使用Service Broker Data Definition Language (DDL)声明替代了复杂的Transact-SQL队列代码,甚至可以使用Integration Services编写复杂的ETL操作。[/b]
·         [b]SQL Server Service Broker[/b].使用Service Broker,Microsoft IT可以避免复杂的Transact-SQL队列代码,而用更简单的Service Broker DDL声明代替。而且,实施Service Broker使得Microsoft IT把应用的可缩放性提高到了更高的层次,并且简化了需要维护的代码库。[/b]
·         [b]SQL Server Analysis Services[/b]. 与SQL Server Reporting Services一起使用Analysis Services替换了Microsoft Office Excel® 方案,Microsoft IT能够提供一个更为安全和可靠的报表体系,而且可以很好的扩展来满足商业需求。前述的这些功能并不意味着所有Microsoft IT实施的新特性,本文会给出更详细的解释。然而,前述功能列表给出了Microsoft IT在其部分实施中所体现的巨大优势内容。

[b]升级到SQL Server 2005 [/b]
[color=#808080]“[/color]由于大量的辅助性工具,及其内建的向后兼容性,升级到SQL Server 2005是简单的工作。. SQL Server 2005企业级的应用,安装容易,表现超出预期。SQL Server 新的设计和特性能够帮助DBA在企业中的工作更具效率。[color=#808080]”[/color]—— Barry Marlow  合作技术专家  Microsoft IT
微软内部迁移到SQL Server 2005的工作在RTM发布前就早已开展了。所以,Microsoft IT使用了大量的测试版安装程序。Microsoft IT使用了一个特殊定制的安装程序和脚本来为这些系统更新后续的升级程序,其中包含若干的步骤,包括分离数据库和移处先前版本的SQL Server 2005和Microsoft .NET Framework 2.0。
RTM版的SQL Server 2005安装程序包括一系列增强特性,帮助提供更强健的安装过程。这一安装程序现在基于Microsoft Windows® Installer,因此,它提供了更加一致,可靠,安全和可定制的安装与升级过程。安装程序把所有SQL Server 2005组件和子系统整合成为一个完整的产品,这一整合简化了组件的选择和任务的配置。
[b]安装选项[/b]
SQL Server 2005支持从SQL Server 2000 Service Pack 4 (SP4)以及Microsoft SQL Server version 7.0 SP4的升级。除此之外,很多子系统,包括Analysis Services,SQL Server Agent,Notification Services,Data Transformation Services (DTS),Full-Text Search,和 Reporting Services都能够在安装过程中移植或升级。
SQL Server 2005安装程序即支持in-place升级,也支持side-by-side的迁移。在in-place升级中,现有的实例被SQL Server 2005的新实例所替换,但是,实例会保留现有的数据和元数据。在side-by-side迁移中,现有SQL Server的实例会被保留不动,会在服务器中添加新的SQL Server 2005实例,当迁移过程完成后,使用detach和attach命令把用户数据库手动的拷贝到新的实例中。
in-place升级非常适合于小型的应用,资源有限,也没有额外的硬件。除此之外,in-place升级需要一些系统停机时间,而且是要不完全成功,要不完全失败的模式。因此,需要制定适当的失败恢复计划以防止意外情况的发生。side-by-side迁移适合那些大型的应用系统,拥有充裕的资源和富余的硬件。side-by-side迁移允许当前实例在迁移过程中继续工作直到迁移彻底完成,提供了更大的灵活性。这一灵活性允许逐步进行的升级,在这期间可以进行测试和确认工作,保证新实例的正常运行,从而可以不中断现有的应用。如果升级失败了,原有实例还可以照样运行。
Microsoft IT用来配置SQL Server 2005的技巧是,在试验环境中部署每一个新的版本,然后将干净的镜像文件布置到生产环境中。这一技巧使得Microsoft IT可以在离线的环境下完成迁移任务,然后再将其部署到各个测试,开发,和生产环境中。
Microsoft IT增强了新的SQL Server 2005安装程序,使之包含下述新特性:
·         [b]Windows Installer[/b]. SQL Server 2005安装程序现在使用Windows Installer,并且把所有的子系统集成到一个完整的安装程序中。所以,全部的组件都可以同时安装完成。
·         [b]系统配置检查(System Configuration Checker,SCC)[/b].在启动安装过程前,SCC会检查目的计算机的配置,发现各种阻碍或屏蔽SQL Server 2005正常安装的情况。
·         [b]日志[/b].安装程序很大程度上改善了日志功能,可以提供安装过程中每一步骤非常详细的信息。因此,系统管理员能够通过检查日志中的错误,非常快速的判断和定位安装问题。
·         [b]群集[/b]. 安装程序为在群集环境中安装SQL Server 2005提供了更好的支持。[/b]
[b]升级计划[/b]
在TAP的帮助下,Microsoft IT仔细规划了每一个应用程序到SQL Server 2005的升级工作。Microsoft IT把当前应用对SQL Server特性的使用进行了详细的记录,并且确定所需要的关键资源。Microsoft IT为每个升级都编写了全面的计划,然后把任务分配给指定的资源。在规划过程中,需要一些测试和确认过程,来保证升级后的应用程序会像预期的那样工作。
微软的大多数LOB应用都有原本的开发,测试,和用户验收测试(UAT)环境。Microsoft IT首先会在这样的环境中进行所有的升级工作,在部署到生产环境之前,确认哪些问题是由于这些环境的变化而引起的。SQL Server 2005包含了一些新的DDL命令,与当前版本SQL Server中的存储过程冲突。
测试过程中的特定任务包括:
·         创建测试计划
·         使用Upgrade Advisor和SCC测试升级流程
·         测试应用的性能改变,与以前版本的性能进行比较
·         对应用的所有功能和UAT 中指定的模块进行详细的测试
·         测试数据客的恢复能力,是否能回滚到先前的版本
[b]部署前准备事项清单[/b]
Microsoft IT使用部署前准备事项清单来帮助确认SQL Server 2005的安装或升级是否成功。在升级的准备阶段,受不同因素的影响,这些部署前任务可能会增加或减少。以下的因素影响了所需要的任务:
·         当前的操作系统环境对升级过程有很大影响,看实例是否运行在群集的环境中。
·         对当前SQL Server 2000各种特性的使用,比如log shipping,复制,全文搜索服务,DTS等,可能会需要特定的IT资源。
·         要使用的SQL Server 2005特性,例如数据库镜像,数据表分区,或是Integration Services,需要特定的实施资源。
对于一个基本的SQL Server 2005安装或升级,Microsoft IT使用以下的部署前准备事项清单:
·         [b]记录基准的数据集[/b]. 基准的数据集为Microsoft IT中的产品支持服务小组提供了很有价值的信息,帮助分析可能引起安装或升级失效的问题。为了在安装或升级SQL Server 2005前获得基准的数据集,Microsoft IT使用了以下的工具去记录当前生产环境的状态。[/b]
·         Microsoft PSSDiag tool[/i] (PSSDiag.exe)[/i].[/i] Microsoft IT使用PSSDiag工具来收集数据,很大程度上减少了解决SQL Server问题的时间。一般来说,这一工具能够抓取SQL Server事件和性能监视信息,帮助对有关SQL Server部署的问题进行分析。
·         Microsoft Product Support (MPS) Reporting tool (MPSRPT_SQL.exe).[/i] Microsoft IT使用MPS报表工具来抓取有关计算机硬件和配置方面的信息,帮助确认在安装或升级过程中可能引起问题的情况。
·         Best Practices Analyzer Tool. Microsoft IT使用Best Practices Analyzer for Microsoft SQL Server工具可以用来保证要安装或升级SQL Server 2005的服务器被正确的管理和操作。
·         [b]运行Microsoft SQL Server 2005 Upgrade Advisor tool[/b]. Microsoft IT使用Upgrade Advisor分析当前SQL Server的实例。使用Upgrade Advisor,Microsoft IT能够分析现有数据库,并且确定那些数据库在使用一些冲突的功能。然后,Microsoft IT可以在升级前对其进行纠正。除此之外,Upgrade Advisor能够确认和报告出升级过程中需要改变的配置属性。Upgrade Advisor还对正在运行SQL Server的计算机进行分析,对以下组件情况提供详细的报告:
·         数据库引擎
·         Analysis Services
·         DTS
·         SQL Server Agent
·         全文搜索
·         Notification Services
·         复制
·         Reporting Services
Upgrade Advisor报告出警告问题,严重问题,和致命问题,并且提供了到相应文档的链接,帮助改正和解决每个问题。
·         [b]检查服务器的良好程度[/b]. Microsoft IT分析每台服务器的硬件,配置,以及软件,来确保它们运行正确,没有异常。
·         [b]清理数据库[/b]. 通过对每个库都运行Database Console Command (DBCC) CHECKDB命令,Microsoft IT能够检查出这些库中数据对象的配置和结构的完整性。Microsoft IT可以了解这些数据库对象的一致性,并且在需要时对其进行修复。
·         [b]备份数据库[/b]. Microsoft IT对所有数据库进行了备份,包括现存的全文目录。
·         [b]准备恢复媒介[/b]. 为了恢复现有的版本,Microsoft IT确认所有的媒介都可以把服务器恢复到以前的状态。
·         [b]检查数据库的只读属性[/b]. 为了确保当前的数据库可以被顺利升级,Microsoft IT检查每个数据库,保证去掉只读属性。
·         [b]检查SQL Server Agent的任务冲突[/b]. Microsoft IT检查所有的SQL Server Agent任务,确保它们的执行时间段不与升级时间段相冲突。
[b]生产环境下部署的清单[/b]
Microsoft IT使用生产环境部署清单来确保对SQL Server 2005的成功安装部署。
[b]独立的服务器[/b]
Microsoft IT执行以下的任务,来在单独服务器上成功的安装SQL Server 2005:
·         确认当前的备份是最新的并且可以被恢复。
·         确认所有要恢复现有映像文件的媒介都可用。
·         确认对所有的数据库都执行了DBCC命令。
·         确认部署前基准数据集已经被收集。
·         停止所有的SQL Server Agent任务及哈,确保不产生冲突。
·         停止服务器上运行的所有第三方软件。
·         确保没有用户登录到SQL Server实例上,还要确保在安装或升级过程中没有用户可以登录到SQL Server实例上。
·         确保SQL Server,SQL Server Agent,和安装用户的账号有正确的权限来执行一个成功的安装和升级过程。
·         停止所有非必要的服务,并且把其他的服务都设置成手动模式,除了下表中列出的必要服务外:
[b]表 1. 必要服务[/b]

Alerter

Process Control

Computer Browser

Remote Procedure Call (RPC) Locator

Distributed File System

RPC Service

Distributed Link Tracking Client

Remote Registry Service

Distributed Link Tracking Server

Removable Storage

Domain Name System (DNS) Client

RunAs Service

Event Log

Security Accounts Manager

Internet Protocol security (IPsec) Policy Agent

Server

License Logging Service

Spooler

Logical Disk Manager

TCP/IP NetBIOS Helper

Messenger

Time Service

Net Logon

Windows Management Instrumentation Driver Extensions

NTLM Security Support Provider

Windows Time

Network Connectors

Windows Time

Plug and Play

Workstation

[b] [/b]

[b]注意:当SQL Server运行在一个群集的环境下时,就需要更多的必要服务。[/b]
·         关闭所有可能使用SQL Server连接的应用程序,例如,Internet Information Services (IIS) 或Microsoft Systems Management Server (SMS)就有可能试图连接SQL Server。一些使用SQL Server的防病毒程序也需要在安装时进行屏蔽。
·         确认没有数据库是只读状态。
·         确认系统数据库被设置成为auto-grow状态。
·         卸载所有先前版本的SQL Server 2005和.NET Framework 2.0安装。
·         在部署开始前重起服务器,确保没有先前的安装或卸载步骤需要重起服务器。
·         复查SCC输出,在继续安装和升级前明确所有出现的错误消息。
·         完成安装或升级,然后重起服务器。
·         执行常规的检查测试。
·         备份新的数据库,确保备份媒介存放在安全的位置。
[b]群集服务器[/b]
当在群集上安装SQL Server 2005,Microsoft IT执行以下额外的任务:
·         确保没有群集资源失效。
·         确认群集服务账号。
·         确认DNS服务账号。
·         确认群集的依赖性。
·         确认SQL Server启动账号在本地策略中有如下的内容:
·         锁定内存中的页。
·         作为操作系统的一部分运行。
·         创建令牌对象。
·         作为服务登录。
[b]安装后续工作的清单[/b]
Microsoft IT使用下列的安装后续工作清单,来确认是否成功的安装SQL Server 2005,并且获取到基准数据集。
·         确认安装正确和数据的完整性。
·         立即备份升级了的数据库,但是不要覆盖在部署前作的数据库备份。
·         对所有的数据库运行DBCC,确认没有发生损坏。
·         收集安装后的基准数据集。
·         对数据集使用SQL Server Health and History (SQLH2)工具。
·         恢复部署前所进行的必要步骤:
·         将数据库属性设置回部署前的状态。
·         启动被禁止的SQL Server Agent任务。
·         重新恢复所有部署前被停止的服务。
·         安装实施所有应用改变。
·         使用下列的安全策略清单为环境设置安全性。
·         使用Windows验证模式。
·         使用强策略密码。
·         启动增强密码安全性的策略。
·         复查已经过期的SQL Server账号和密码,帮助保护新的实例。
·         设置审核为最小化[b]Failed logins only[/b]选项
·         确认SQL Server supporting services默认设置为关闭,并且只有在应用需要时再打开。
·         确认SQL Server common language runtime (CLR)特性默认设置为禁止,并且只有在应用需要时再打开。
·         确认SQL Server角色在使用,并且其对象权限永远不对SQL Server登录账号开放。
·         确认域安全组在使用,并且其对象权限永远不对SQL Server登录账号和Microsoft Windows NT®组开放。
·         确认在Microsoft Windows Server™ 2003域安全组里,administrator被允许访问SQL Server,并且BUILTIN\Administrators登录不是SQL Server sysadmin服务器角色的成员。
·         确认应用程序的登录账号不是任何内建数据库角色的成员,作为最佳实践,应用程序最好运行在最小权限的账号下。
·         确认从服务器上每个数据库中删除guest账号,或者设置为禁止访问。
·         修改SQL Server文件夹,文件,和注册表默认的访问控制列表(access control lists ,ACLs),帮助保护其不被未授权用户修改。SQL Server服务账号需要对以上每个区域都有读的权限,并且对SQL Server数据和日志文件有写的权限。
·         以下的外部过程禁止访问sysadmin服务器角色:xp_regread, xp_regwrite, xp_regaddmultistring, xp_regdeletekey, xp_regdeletevalue, xp_regmovemultistring, xp_regenumvalues, xp_regenumkeys, xp_cmdshell, 以及所有的sp_OA*存储过程。
·         不要启用SqlMail,仅仅在需要的时候使用Database Mail。
[b]问题的解决 [/b]
安装SQL Server 2005会创建一些保存安装步骤和安装错误的日志文件,Summary.txt日志文件一般位于以下的文件夹内:Drive:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG。
可以帮助进行安装错误排除的详细信息被放在以下的文件夹内:Drive:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files。
详细日志的文件名称随着每次安装改变,有着以下的格式:SQLSetup[#####]_[ComputerName]_[Setup Task].log。

[b]SQL Server 2005[/b][b]特性的优势[/b]
微软将系统转向SQL Server 2005,不仅仅是看重了产品基础功能的提升,更是由于希望采用SQL Server 2005众多的新特性。这些新特性帮助Microsoft IT为微软的商业部门创建,增强,更好的支持满足不断变化的商业需要的解决方案。

[color=#808080]“SQL Server 2005[/color]是这么多年来我见到的最好的关系型数据库。拥有毋庸置疑的企业级伸缩性和可靠性。我们已经把关系全球运营的微软最核心的企业级应用和服务运行在 SQL Server 2005 上超过1年,保证其对企业级用户而言有足够的可靠性。”—— David Fahey  高级技术专家  Microsoft IT
[b]FeedStore实施[/b]
FeedStore应用是微软内最大型的数据库之一。FeedStore存储了超过2TB的数据内容,并且还在以每年超过30%的速度增长。FeedStore作为一个企业中央集成入口,从很多内部源获得数据,并把这些数据发布成为39个数据集,全球范围内有超过500个应用从其订阅已经发布的数据集。公司的SAP R/3 ERP系统就是一个样例的数据源。分布式架构的服务器在地理上位于Redmond,Dublin和Singapore,这样可以为使那些订阅数据的应用程序最大限度的利用带宽资源。
图 1 是微软FeedStore应用的一个简化图示。
[img]http://298853.blog.51cto.com/album/288853/119934427932.jpg[/img]

[b]SQL Server 2005特性的实施[/b]
Microsoft IT希望利用SQL Server 2005的新特性来增强FeedStore应用。为了达到这一效果,Microsoft IT在2004年中就开始转向SQL Server 2005。Microsoft IT升级的第一个应用组件是数据仓库。未来的计划包括在SQL Server 2005 RTM版发布后将数据发布和分发服务器也都进行升级。
对于FeedStore应用最大的改进是硬件的升级,从8路32位CPU的服务器升级到了4路64位CPU的服务器。采用了64位平台后,FeedStore应用能够充分利用64位CPU增强的处理能力以及扩展的内存寻址能力,达到非常高的缩放能力。SQL Server 2005中对64位计算的内在支持消除了FeedStore应用运行在32位时经常碰到的内存限制。在FeedStore应用中,大量用来进行ETL操作的原有Transact-SQL脚本,其运行性能得到了接近40%的提升。

[b]注意:[/b]自从升级到 SQL Server 2005以后,FeedStore应用已经处理了超过 135亿项事务。
[b]未来战略规划[/b]
FeedStore应用的未来规划包括充分利用SQL Server 2005如下的新特性:
·         [b]Integration Services[/b]. FeedStore使用包含数千行Transact-SQL代码的存储过程和批处理脚本来实现ETL处理。支持和维护这些代码花费巨大。转移到Integration Services技术,以前被称为DTS,Microsoft IT能够减少上千行的自定制代码。并且,Integration Services可以给Microsoft IT带来改变其数据整合架构的机会。这一改变将会增强ETL的性能,并且和现有的以及未来的数据源相结合。
·         [b]CLR[/b].在FeedStore中数千行的Transact-SQL代码里,写有大量复杂的处理过程,初发器,和函数。这些复杂的代码更适合用.NET Framework 2.0和里面丰富的类库及方法来编写。SQL Server 2005里面集成了CLR,允许Microsoft IT对FeedStore的功能进行灵活的扩展,而不再需要编写自定义的扩展过程或第三方的应用程序。
·         [b]Database encryption[/b]. FeedStore应用已经用很强安全架构和SQL Server 2005里的新特性来帮助保护数据库里的用户身份信息。这些新特性包括:内置的密钥管理,不对称加密,对称加密,和证书。Microsoft IT正在考虑将用户身份信息数据单独的隔离开来。这些数据将会单独的存放在中央数字资产存储系统中,在这里Microsoft IT可以使用SQL Server 2005的加密功能来加强对数据的保护。
[color=#808080]“[/color]具有高性能,易于开发的可伸缩平台[color=#808080]”[/color]—— Ketan Patel  开发负责人  Microsoft IT
·          [b]SQL Server Service Broker[/b]. 使用新的Service Broker技术,Microsoft IT希望创建进一步连接外部系统而又符合安全指导方针的解决方案。Service Broker使得Microsoft IT可以创建由业务活动触发的解决方案。在这些业务活动中,数据是加密的,并且有基于授权的安全性机制。
[b]MS Sales实施[/b]
MS Sales应用是一组解决方案工具,保存了微软在世界范围内的销售,供应,分销,零售,和客户数据。关系型数据库被优化用来提高端到端查询的性能,为业务单位提供及时,准确和一致的微软业务状况图表。MS Sales应用包含以下的特性:
·         多层的应用架构。
·         超过500GB容量的数据超市。
·         超过9000名微软内部用户。
·         用户可以查询超过900种属性。
·         在6台查询服务器间实现负载均衡。
·         每周运行25000多个端到端的报表。
·         每月在数据仓库中存储超过1千万个事务。
·         在开发,测试,和生产环境中有40多台服务器。
·         用户界面包括Excel插件,以及可以展现静态摘要报表的基于Web的工具。
图 2 显示了MS Sales应用的流程概缆。
[img]http://298853.blog.51cto.com/album/288853/119934428531.jpg[/img]

有专门的服务器负责导入和验证数据,然后把数据加载到数据仓库中去。服务器使用由Microsoft Visual C++®代码编写的Windows NT批处理任务来完成上述这些工作。数据工厂服务器随即对这些数据进行加工,形成MS Sales数据超市表格和索引,以便查询服务器使用。每天,每周,每月,每年不停的运行在数据工厂服务器上的这些处理保证了MS Sales数据超市及时的商业价值。
用户可以使用Excel插件来向MS Sales应用提交请求,把这一请求发送到应用层。应用层对这些请求进行负载均衡,并且把他们中转到其中一台查询服务器上去运行。

[b]SQL Server 2005特性的实施[/b]
[b]数据表分区 [/b]
SQL Server 2005新的数据表分区特性帮助Microsoft IT实施了简单的分区表结构。在先前的实施中,销售数据被按月分别存放在不同的表中。当用户选择多个月份时,就会有很多联合操作执行,以便返回用户期望的结果,需要用Transact-SQL代码创建逻辑查询,并提交给查询服务器来执行,这些代码十分复杂。新的数据表分区特性非常简单,可以大大的减少查询的大小,与以前的情况相比极大提高了查询的性能。
例如,当一个用户需要96个月的数据时,查询的总大小从180KB减少到了5KB。因此,数据表分区特性可以极大地提高MS Sales应用中销售信息表的可伸缩性和可管理性,很多时候查询的性能可以有70%以上的提升。
[b]数据库镜像 [/b]
为了增强负载均衡服务器的可用性,Microsoft IT使用了数据库镜像。而先前在负载均衡服务器上使用的是log shipping。尽管log shipping也为MS Sales应用提供了可用性增强和失效恢复支持,有时还是会丢失一些客户的请求。使用了SQL Server 2005的数据库镜像功能,可以保证事务分配到镜像服务器上,当首要服务器不可用时会自动执行失效恢复。
[b]数据库邮件[/b]
SQL Server 2005里新的数据库邮件功能被用来进行MS Sales应用中的操作和服务监控。MS Sales可以从SQL Server Agent和存储过程中调用数据库邮件。数据库邮件有以下的特性:
·         MS Sales数据库服务器不再需要安装扩展的MAPI客户端了,因为数据库邮件功能使用标准的Simple Mail Transfer Protocol (SMTP)发送邮件。
·         数据库邮件在SQL Server以外的单独进程里运行,即使在外部进程失效的情况下,SQL Server还是可以继续把e-mail消息组织在队列里。
·         数据库邮件支持失效恢复账号,并且允许用户使用不止一个SMTP服务器。
[b]varchar(max) 数据类型[/b]
MS Sales应用使用了新的varchar(max)数据类型来执行Transact-SQL语句。这一新的数据类型允许存储超过2^21-1 bytes,可以替代只有8,000-byte大小的标准varchar数据类型。
[b]SQL Server Service Broker[/b]
在MS Sales应用层中使用Service Broker,Microsoft IT提高了基础架构的伸缩性和可靠性。Service Broker的应用队列设计,使之成为自定义代码编写的队列应用层的最佳替代品。Service Broker中的异步队列使得所有提交的请求被一个队列所获取,无论服务器在执行什么。并且,通过对每个创建的请求指定一个目标服务队列事件,可以使队列的回应自动化。队列请求的数目在每天200个到4000个之间,而Service Broker消息的数目可以达到上万个。
图 3是新的MS Sales应用层的图示
[img]http://298853.blog.51cto.com/album/288853/119934429452.jpg[/img]

在先前的实施中,Microsoft IT为每个提交到查询服务器的查询创建一个SQL Server Agent任务。对于每台服务器上运行30个查询的这五台服务器,这种方法需要150个SQL Server Agent任务持续的运行,在应用层和数据层都消耗资源。与原来的实施相比,新的Microsoft IT应用层已经改进了下述的问题:
·         重起失效任务的麻烦。
·         应用层和数据层重复消耗资源。
·         自定义代码队列的维护和支持。
·         如果应用层失效后,所有的任务都需要重起。这个需求严重的影响应用性能。
Microsoft IT已经从使用SQL Server Service Broker获得了如下的收益:
·         应用所需要的代码量减少了50%,这一改变还减低了维护和支持成本。
·         配制标准负载现在可以通过调整线程池来完成。
·         Service Broker是集成的,由于数据库镜像到了在线的备份上,所以不会有查询丢失。
·         所需要的代码易于编写,在10天内就可以完成。
[b]未来战略规划[/b]
由于在SQL Server 2005 Analysis Services里实施了众多的新特性,Microsoft IT 正在探讨为MS Sales应用添加数据挖掘能力的可行性。下述的Analysis Services特性会给MS Sales应用带来好处:
·         对维度的可伸缩性
·         角色操作维度
·         每个维度多层次
·         去掉了64000个维度的限制
·         用户级的动态安全性
·         多对多的动态汇率转换
·         动态汇率转换标准公式
·         支持多查询服务器的备份与恢复改进
·         每个cube多个实际表,替代了虚拟cube
·         透视图替代了多cube
·         数据源视图(DSVs),帮助管理大数据源
·         不平衡层次
·         参数化的多表达式(MDX)查询
·         关键绩效指标
·         关联组
[b]SAP R/3[/b][b]实施[/b]
微软使用的SAP R/3 ERP系统包括多于1.6TB的数据。这一应用为超过2700名用户服务,并发用户大约600人。系统每日处理超过40000条电子数据交换(electronic data interchange ,EDI)事务,每月执行超过78000个批处理。响应时间小于1秒,系统地可用性达到了99.9%。
[b]SQL Server 2005特性的实施[/b]
[b]数据库镜像[/b]
Microsoft IT当前将SQL Server 2005数据库进行镜像,在本地与在线的备用服务器进行同步镜像,提供了高可用性,与远程服务器进行异步的镜像,提供了灾难恢复能力。SQL Server 2005的镜像能力帮助确保了所有被提交的事务都会在镜像上。如果首要服务器不可用,镜像的服务器就可以上线,而不需要去恢复事务日志。
图 4 展示了SAP R/3数据库镜像实施的图示
[img]http://298853.blog.51cto.com/album/288853/119934430099.jpg[/img]

对数据库镜像方案的进一步规划将包括实施监控服务器,支持在首要服务器实效后自动的启用镜像服务器。
[b]多主动结果集[/b]
在一个特定的会话中,SQL Server 2000只允许一个待处理请求。采用了SQL Server 2005的多主动结果集特性后,每个会话可以有多个允许的请求。当SAP R/3系统运行在SQL Server 2005上时,就可以使用上述的特性。因此,当操作可以在同一个会话中执行时,应用可以有多个响应的结果集。
[b]在线检索[/b]
由于迁移到SQL Server 2005,Microsoft IT现在能够在不影响用户访问表格数据和使用其他索引的情况下执行索引操作。因此,Microsoft IT能够在检索必须执行的时候为应用提供高的可用性。
[b]微软会计报表系统实施[/b]
在微软,MARS应用是所有内部管理和外部财务报表的基础。MARS应用提供了被美国证券交易委员会(Securities and Exchange Commission,SEC)归档的全系列财务文档。并且,MARS应用生成的财务文档包含在微软提供给SEC和投资者的年度报告中。
在微软,超过2000名用户在使用MARS应用,为每个业务组织提供财务信息。由于全世界数百万的投资者使用微软发布的财务状况报告,因此财务结果报表的准确性和时效性就成为了最关键的原则。
[b]SQL Server 2005特性的实施[/b]
采用SQL Server2005之前,MARS应用使用了一个定制化的应用,从MARS SQL Server 2000数据库中读取上百个Excel工作表。这一过程在SQL Server 2000数据库被一些内部数据源刷新后进行。例如:SAP R/3 ERP就是一个这样的内部数据源。刷新Excel工作表需要超过2个小时的时间。每个Excel工作表使用复杂的公式或Microsoft PivotTable®动态视图来把结果展示给最终的用户。这些Excel工作表被存储成共享文件,并且附加了文件共享级别的安全权限。这一Excel方案有如下的问题:
·         Excel工作表非常巨大,经常需要很长时间才能打开。
·         安全级别到文件共享级,因此,不能提供更细致的安全策略。
·         在月度或季度报表周期内,业务团体需要每天刷新两次,因此,Excel工作表的刷新时间就限制了其可以被刷新的频率。这一问题在微软的规划周期带来了很大的问题,这时需要刷新四次。
·         运营人员必须手动的更新一部分Excel工作表。
·         添加或修改报表是复杂的开发工作,需要了解MARS数据库结构和特定的知识。
为了提供更加强健,安全,和可扩展的解决方案,Microsoft IT部署了Microsoft SQL Server 2005 Analysis Services和SQL Server 2005 Reporting Services。
图5展示了添加到MARS应用的新组件的图示
[img]http://298853.blog.51cto.com/album/288853/119934430757.jpg[/img]

MARS 应用使用了Analysis Services和Reporting Services,替代了静态的Excel工作表解决方案。
配置了新的SQL Server 2005解决方案,Microsoft IT从Analysis Services功能获得了如下的收益:
·         [b]Granular permissions[/b].能够在Analysis Services中设定更详细的权限。这一改变极大的简化了报表的创建和分发。因为一个报表不可能为所有用户创建,先前的方案就需要创建多个Excel工作表来满足数据需求和安全设置。现在,Analysis Services的安全性允许分别控制每个用户可以访问的数据。而且,对所有报表的访问也增加了日志,也可以出于审核的目的来报告出报表的使用情况。
·         [b]Calculated measures[/b]. Analysis Services设定的Calculated measures能够被用在很多不同的报表上,而不必再像Excel那样为每个报表创建新的公式。例如,Microsoft IT为前面的周期,或去年同期创建了calculated measures,极大地简化了报表创建流程。
·         为MARS数据库创建在线分析处理(Online Analytical Processing ,OLAP)cubes仅仅需要30分钟,比以前创建Excel工作表所花费的2小时大大缩短。因此,报表系统中的结果报表在Analysis Services更新后立刻就生成了。[/b]
由于部署了SQL Server 2005解决方案,Microsoft IT从Reporting Services功能获得了如下的收益:
·         [b]报表开发[/b]. 使用Business Intelligence Development Studio中的报表设计器,报表设计团对拥有了一个特性丰绪的环境,来创建和维护报表。在报表环境中显示OLAP cube元数据,减低了创建和维护报表所需要的技巧,也减少了配置报表的时间。
·         [b]嵌入或集成式报表[/b]. Reporting Services开放的API允许Microsoft IT把新的报表系统和报表目录应用整合在一起,为最终用户提供了无缝整合的解决方案。
·         [b]订阅[/b]. 使用Reporting Services订阅,Microsoft IT能够分发静态的Excel工作表,与先前版本的特性类似。[/b]
·         [b]减少培训[/b]. 对创建报表和使用报表的培训需要极大地减少。最终用户现在仅仅需要点击 [/b]access,drill down,输出,发送和打印报表就可以了[/b]
[b]集中报表系统实施[/b]
集中报表系统(Centralized Report System ,CRS)应用是一个新的,灵活的商业智能解决方案,其使用SQL Server 2005 Integration Services,提供了对微软的呼叫中心数据库的ETL操作。因为现有的方案没法满足越来越大的报表需求,其对源数据执行ETL处理的时间一般在16到20小时之间,已经遇到了瓶颈,需要被更加强健和可伸缩的方案替代。
在被读入前,CRS应用的源数据需要很多自订制的计算, Integration Services提供了适合这一工作的强健工具和可扩展环境。
图 6 展示了在Integration Services处理流程中,CRS应用的位置。
[img]http://298853.blog.51cto.com/album/288853/119934431430.jpg[/img]

ETL操作包括从9个不同的数据源中提取数据。然后,操作执行对超过50个实时表的计算,再对超过20维度的列和字段执行度量计算。Microsoft IT使用Integration Services所获得的收益如下:
·         [b]开发高效[/b]. Integration Services包使得开发者可以利用.NET Framework 2.0简便的执行复杂的计算。
·         [b]处理高效[/b]. 由于多线程内存中流程处理技术,开发者需要处理ETL操作的时间减少了80%。
·         [b]指定范围的数据重新处理[/b]. Microsoft IT增强了ETL操作来适应指定范围的数据重新处理这一改变使得Microsoft IT只需要在源数据进行更新或修改后再进行在指定范围内重新处理数据。

[b]最佳实践与收益[/b]
在规划,实施,和安装后任务中,Microsoft IT总结了下列的最佳实践,能够帮助其他组织更好的安装和升级到SQL Server 2005:
·         [b]规划[/b].在每个成功的SQL Server升级工作中,仔细的规划扮演了重要的角色。Microsoft IT仔细的对现有的系统和应用的使用编写文档。使用Upgrade Advisor,Microsoft IT对每个LOB应用都确定问题所在,并在部署前解决这些问题。为了保证成功的进行升级,Microsoft IT确认升级工作中每个执行任务所需要的特定资源。[/b]
·         [b]执行前[/b]. 执行前清单帮助确保每一部署步骤地一致性,而且还对安装后任务有所反馈。依次执行清单中规定的任务,每个部署都应该顺利无误。最终,一系列工具,例如Upgrade Advisor和SCC可以对成功的实施提供指导和知识库。
·         [b]部署[/b].在规划阶段就测试部署,Microsoft IT确保了部署时间窗口足够大,可以用来进行升级,以及在生产环境中及时地配置LOB应用。[/b]
·         [b]执行后[/b]. 执行后任务服务于两种需求。第一,这些任务把系统环境状态调整成为在线。第二,这些任务为将来进一步的成功部署留下资料。详细的记录执行后的问题和解决,Microsoft IT甚至提高了规划和执行前任务列表的质量。[/b]
·         [b]新特性的执行[/b].在升级开始的时候,明确所有可以增强应用功能或性能的新特性,Microsoft IT提供了比先前版本更洁净的SQL Server 2005实施。例如,通过仔细的定义数据表分区策略,Microsoft IT能够提高应用程序的性能,并得到用户的认可。[/b]
·         [b]产品家族[/b]. 在升级到SQL Server 2005前,最好开发一个知识库系统,帮助更好的理解新架构,新特性,以及任何矛盾的指令。对SQL Server 2005清晰的了解,将会带来一个更强健可靠的实施,并且还可以增强用户体验。[/b]
·         [b]内建的新特性[/b].通过实施SQL Server 2005,Microsoft IT能够为不同的业务团体提供更加安全和丰富特性的环境。例如,SQL Server 2005提供了以下的收益。
·         使用SQL Server 2005里的默认关闭,增强的安全性,以及数据验证特性,Microsoft IT能够更好的帮助保护商业敏感的信息,并将其发送给需要的接收者。
·         通过使用SQL Server 2005对64位计算的支持,Microsoft IT维护了一个更加易于扩展的环境,在其中进行服务器合并,而性能则有非常大的提高。
·         使用了SQL Server 2005里增强的开发性,Microsoft IT发布了更加强健和可扩展的解决方案,满足了各个不同商业团体新需求,而且降低了总体拥有成本。
·         使用了SQL Server 2005增强的分析和报表能力。Microsoft IT能够提供对商业价值的实时洞察,帮助业务团体做出更充分的选择。

[b]总结[/b]
在TAP的帮助下,Microsoft IT安装了SQL Server 2005,以获得内建特性所带来的好处,而不只是性能的提升。SQL Server 2005还提供了对微软LOB应用的增强。Microsoft IT使用了很多SQL Server 2005里面的特性,帮助提供更强健,可靠,安全,和高可用性的应用平台。
SQL Server里开发人员效率的提升,使得微软开发和维护的总体拥有成本比采用SQL Server 2000时提低了很多。新的应用和增强被快速的发布,而且商业需求也被更好的满足了,使得企业解决方案得到扩展。这些企业解决方使得用户在处理复杂分析和探究商业联系时更具灵活性。因此,用户可以做出更全面和及时地决策,以便在不同的微软商业领域抓住新的机会。
由于SQL Server 2005更强健的安装过程,迁移到SQL Server 2005变得非常简单。配合SQL Server 2005使用Upgrade Advisor和SCC,组织可以更好的准备,规划,和发布更强健,可靠,全面,和可伸缩的数据库解决方案。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.