【问题标题】:Identify compatibility issues when migrating from SQL Server 2000 to 2012从 SQL Server 2000 迁移到 2012 时确定兼容性问题
【发布时间】:2014-11-27 14:27:21
【问题描述】:

我们计划从 SQL Server 2000 迁移到 2012。我知道必须这样做。

SQL Server 2000 -> SQL Server 2005/2008 -> SQL Server 2012

我们首先使用 SQL Server 2008 R2 进行了测试,但由于某些使用非 ANSI 标准连接编写的存储过程存在一些问题(例如,*= 用于 LEFT JOIN),因此它必须在兼容模式 80 下运行。而且我了解 SQL Server 2012 不提供 SQL Server 2000 的兼容性选项。

所以我必须重写 ANSI 标准中的存储过程/视图/函数。但我的问题是,如何确定迁移后会出现的所有兼容性问题?到系统的每个角落去检查是非常困难的。是否有任何工具可用于报告问题区域。或者最好的方法是什么。

过去几个小时我一直在搜索,很多人建议先在 SQL Server 2012 上测试系统。是的,我会这样做,但我担心的是以后会不会出现我们今天错过的东西。这样做的专家方法是什么。还是我们应该使用 SQL Server 2008 R2。

非常感谢 约翰

【问题讨论】:

  • 没有魔法 - 你只需要测试它(你仍然可能会错过一些东西)。升级顾问和最佳实践分析器可以捕获很多,但不是全部。不,我不建议坚持使用 2008 R2 来避免这项工作。 (1) 2008 R2 已经脱离主流支持。 (2) 你也不能永远停留在 2008 R2 上,所以你只是在拖延不可避免的事情。见this dba.se Q&Athis blog post
  • 另外,如果您正在考虑 2012 年但没有承诺,为什么不考虑 2014 年?
  • 2012 是我们组织中最新接受的版本。

标签: sql-server-2012 sql-server-2000


【解决方案1】:

我正在进行类似的迁移:从 SQL 2000 到 SQL 2014。 同样的问题。

我只找到了一个解决方案:桥接机。

第 1 步:收集 SQL 2000 上的跟踪信息。模板:SQLProfilerTSQL_Replay。

第二步:在sql 2000数据库上运行SQL 2008的advisor,也可以处理trace。

第 3 步:将数据库附加到 sql 2008 桥接器上。复制数据文件并附加它们,使用备份和恢复,或您喜欢的方式。

第 4 步:将兼容模式提升到 2008(或 2008r2,差别不大)。

第 5 步:运行 2012(在我的情况下为 2014)顾问。

第 6 步:将升级后的数据库放在 sql 2012 实例上,并将它们提升到新的兼容模式。

第 7 步:运行一些检查脚本。

DBCC CHECKDB WITH DATA_PURITY;

在您的所有数据库上。 一些 racomand 也:

DBCC UPDATEUSAGE(db_name);

我还建议更新统计信息等。 如果你有全文索引等问题会更复杂,但你必须面对一个问题广告时间。

第 8 步:在测试环境中测试所有可能的应用程序。

第 9 步:吓唬你的老板。下次你不需要跳过 12 年的技术。我理解你,真的,同样的问题。

额外:如果您想交换意见和解决问题,请写信给我。我现在正在处理迁移。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-19
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2011-09-20
    相关资源
    最近更新 更多