如何将现有基于SQL Server低版本的应用,顺利升级到SQL Server 2012上来?

升级到SQL Server 2012,可以充分利用SQL Server数据库的一些新特性,例如列索引、AlwaysOn等技术,实现更高性能、更高可用性、更高安全性等,还可以拓展更多的商业洞察力及基于云的创新。但对于原有系统,首先需要完成的,就是确保原来的数据库能够迁移到SQL Server 2012中。

 

本周初举行了一个Microsoft SQL Server 2012应用程序兼容性实验室(Application Compatibility Lab),总的说来,在升级和兼容性测试过程中,关键是要选择合适的策略和工具。

策略方面,首先,并不是所有的先前版本都能直接通过安装升级到SQL Server 2012。只能由SQL Server 2005, 2008, 2008 R2升级到2012,且SQL Server 2005必须打SP4包,SQL Server 2008必须打SP2包,SQL Server 2008 R2必须打SP1包。对于SQL Server 2000,只能通过先升级到SQL Server 2005或者2008,然后再升级到SQL Server 2012。

谈到升级策略,主要有两种,即“In-place”和“Side-by-Side”,“In-place”就是直接在现有服务器上进行升级安装,替代原有数据库系统。而“Side-by-Side”又分成了在原有服务器上升级和在另一台服务器上升级两种。两种策略,各有优劣,具体应根据目标和自身情况来选择。

  • “In-place”简单、直接,但对于规模较大、负责的系统,更应该考虑“Side-by-Side”,特别是独立的另外的服务器,以保证作业系统的连续性和业务数据安全。
  • 对于“Side-by-Side”,可以制定更安全的回滚计划,以便升级不成功或者出现兼容性问题的时候,能够恢复原先的系统,而“In-place”则存在较大的风险。
  • “Side-by-Side”可能需要对应用配置进行改动,例如连接串等。此外,需要保证数据在两个实例之间的一致性,确保业务连贯性。

对于工具,有几个工具非常有价值,易于使用:

  • Microsoft SQL Server 2012 Best Practices Analyzer 最佳实践分析器

http://www.microsoft.com/en-us/download/details.aspx?id=29302

这个工具收集数据库实例信息,使用规则来检测元数据保留复制配置中的异常情况,并提醒可能存在的问题。

  • Microsoft SQL Server 2012 Upgrade Advisor 升级顾问(32位和64位)

http://go.microsoft.com/fwlink/?LinkID=239679&clcid=0x409

http://go.microsoft.com/fwlink/?LinkID=239680&clcid=0x409

clip_image002

分析的结果如下图所示:

clip_image004

可以参考下面的网址:

http://technet.microsoft.com/zh-cn/subscriptions/index/d85b0833-ddeb-42e3-9397-97ea60d521b7

  • Upgrade Assistant for SQL Server 2012 (UAFS) 升级助手

clip_image006

http://www.scalabilityexperts.com/tools/downloads.html

分析的结果如下图所示:

clip_image008

UAFS使用了Playback Capture Wizard(重播捕获向导)技术提供了工作负荷捕获功能,包含了应用程序与数据库之间发生的各种不同的Transact-SQL交互操作。高质量的代码覆盖重播应包含90%以上由应用程序生成的不同类型的Transact-SQL命令。主要操作步骤包括:

    • 查询关于指定服务器配置的信息
    • 对指定实例中的所有数据库进行备份
    • 开始跟踪捕获服务器的工作负荷
    • 等待用户干预,手动停止跟踪捕获
    • 报告捕获过程