将SQL 7升级到SQL 2008的最佳方法是什么?

我正在升级旧网站,并将所有内容都转移到新的服务器和最新的软件版本。

作为升级的一部分,我需要将数据库从运行MS-SQL 7的Win2000服务器移动到运行MS-SQL 2008的新Win2008 64位服务器。

我试过在早期的testing运行期间做数据库备份和恢复, SQL 2008不会从版本7恢复数据库备份

我想我可以尝试使用BCP导出数据,并将其导入到2008计算机上具有相同模式的空数据库中。

否则,我可以尝试在新框上安装SQL 2000或SQL 2005,然后恢复到那个 – 然后:

  • 分离该数据库并将其附加在SQL 2008引擎中

要么

  • 从该数据库备份并在2008年恢复

这是一个生产系统,所以传输数据会导致系统停机一段时间,但我想保持这个最低限度。

什么是接近这个升级的最好方法? 任何要注意的陷阱? 我应该使用BCP方式还是中间数据库版本?

如果你想升级,通过SQL 2000或SQL 2005,然后到SQL 2008。有很多关于如何做到这一点的文档。 在开始之前阅读它。 认真。

您的结构和数据传输方法也是一种select,但可能会遇到问题。 我会做升级的方法。 就个人而言,我会通过SQL 2005,然后到2008年。

您无法直接从SQL Server 7升级到SQL Server 2008。 本文档列出了可能的支持选项。 [ http://msdn.microsoft.com/en-us/library/ms143393.aspx%5D

你最好的select是从SQL Server 7升级到SQL Server 2000,从SQL Server 2000升级到SQL Server 2008.并且不要做太多的跳跃。 这是获得权威信息的最佳select。 http://www.microsoft.com/downloads/details.aspx?FamilyID=66d3e6f5-6902-4fdd-af75-9975aea5bea7&displaylang=en

升级后

  1. 随着查询优化器从头开始编写,您将准备好一些性能问题,您将得到完全不同的计划,并且正在寻找一些代码重写。 不要指望SQL Server 2008将在一开始就解决问题(至less)。
  2. 确保重build所有索引或使用fullscan更新统计信息
  3. 运行DBCC UPDATEUSAGE,这将有助于系统视图(DMV)更正行计数。
  4. ALTER DATABASE SET PAGE_VERIFY CHECKSUM,这将帮助你尽早发现IO腐败。 理想情况下,您希望在运行重build索引之前设置此选项。

你可能碰到更多的问题,所以规划和做作业是成功升级的关键。

我个人会去在中间服务器上恢复的方法。 复制结构和数据也应该有效,但实际上可能需要比两次detach + copy + attach操作更长的时间。

如果您确实使用BCP复制结构和数据方法,请确保正确设置目标数据库的兼容级别,以减less由于SQL自身更改而导致的问题。 有关这些差异的更多详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms178653(SQL.90).aspx 。

即使设置了兼容性级别,您也应该计划使用数据库的任何应用程序的完整回归testing,因为在您的代码依赖于在SQL7中保持不变的“未定义”行为的情况下,可能仍然存在细微差异,但在以后不能保证版本。