微软在SQL Server 2005中就引进了升级顾问(Upgrade Advisor)。这款工具可以在执行SQL Server数据库升级计划之前在一个安全的环境下对你当前的SQL Server数据库进行调试和分析。任何项目计划实施要想获得成功的关键因素就是风险管理,而这款工具可以在不引进任何风险的情况下进行风险评估,然后逐个地评估解决该工具识别可能存在妨碍升级的问题,从而为在可控的方式下开始进行升级计划。值得庆幸的消息是,微软将继续在SQL Server 2008中提供这款工具。下面我们要讨论的对象就是新版本中的这个工具。
这个架构受欢迎的一个原因是我们可以在一台独立的台式机上安装升级顾问,然后将其远程连接到原有的SQL Server机器上。然后,升级顾问会在只读模式下进行分析调试,不会改变原有服务器上的任何东西。这样的方式会让人感觉更加舒服,因为在调试分析过程中SQL Server能够继续以正常的方式运作,同时我们能够查看生成的分析结果报告,并开始规划升级事宜。升级顾问会分门别类罗列出所发现的问题,如错误或警告等等。对于每一个问题,都有一个相关的帮助文档链接,可以告诉你更多关于这个问题的信息以及解决方案。当你逐个处理完这些妨碍点之后,你就可以将这些问题标记为“已解决”。当你下一次运行升级顾问时,已解决的问题就不会再出现,你只要解决新出现的问题就可以了,这样一直到升级顾问给出的结果报告没有问题出现为止。不过微软在SQL Server 2005中玩了一点小花样。就算你的服务器在分析测试中找不出什么问题,升级顾问也还是会列出至少一个数据库引擎错误,标明为“其他数据库引擎升级问题”。微软的本意是为了让大家在升级过程中提高警惕不要自满大意,于是将这条代码写死在程序中,迫使我们查阅相关的一般升级问题的基础知识文档。我们可以自己将这个错误标记为“已解决”。值得庆幸的是,微软在SQL Server 2008中也沿用了这个策略。
在SQL Server 2005中,为升级顾问提供支持的知识库(knowledge base)内容很丰富且详细,非常有用。每一篇文档都对问题进行了详细的解析,并列举出解决该问题的可能方法和步骤。如果你期待2008版能继承前辈的优良传统,那你可能要失望了。对于很多问题的解答,2008版的知识库都是轻描淡写一笔带过,没有提供更多有用的信息。例如,对于一些SQL Server 2005有而在SQL Server 2008中不再支持的功能,知识库只是简单的一句话说在此版本中不再支持该功能,而纠正该问题的方法也是简单地让用户避免在新的开发工作中使用该功能等等,而不再详细地为我们解释理由来。原本在很多人眼里,SQL Server的帮助系统“联机丛书”可能是能找到的最棒的帮助文档集合,不过现在对SQL Server 2008似乎并不适用,SQL Server 2008的升级顾问知识库没能达到这么高的标准。这恐怕和微软测试计划中缺少足够的叠代有关,如果当初还有另一个候选版本的话可能就能提供足够的时间来处理这类事情了。