2

一些背景:

一位客户就从 sql server 2005 迁移到 sql server 2008 向一位认证 SQL Server 顾问询问了他的意见。

他最重要的建议之一是不要使用备份/恢复,而是使用迁移向导将所有数据复制到新数据库中。

他说,这将确保数据库的内部结构采用 SQL 2008 格式,并最终带来更好的性能。

客户对此持怀疑态度,因为他们无法在白皮书或其他方面找到任何文字来证实顾问的声明。

所以他们向我提出了这个问题:

给定一个 SQL 数据库,它最初在 SQL Server 2000 上启动,并已使用备份/恢复迁移到较新版本的 SQL Server。(最后在 SQL Server 2005 上)

使用迁移向导迁移到 SQL Server 2008,实际上将所有原始数据复制到新数据库中,会产生更好的性能特征。那么他们是否会再次使用备份/恢复方法呢?

4

2 回答 2

12

我将重复我在 Twitter 上发布的内容,“你的顾问是个白痴”。

进行备份和恢复会容易得多,并且需要更短的停机时间。它还将确保数据是一致的,并且不会遗漏任何对象。

只要您进行索引维护(重建或重组/碎片整理索引),那么已经发生的任何页面拆分都是固定的,并且不会出现性能问题。

当数据库从一个版本移动到另一个版本时,物理数据库文件将更新为新版本。当您恢复数据库时,您会注意到兼容性级别设置为旧版本的编号。这与数据库文件的物理结构无关。您可以随时将兼容级别更改为更低或更高版本。如果您使用 T-SQL 恢复数据库,您可以看到这一点,因为在数据库恢复后您将看到执行的特定升级步骤。

响应 qwerty13579 的评论,重建索引时,索引将写入新的物理数据库页面,因此不需要在 SQL Server 数据库中导出和导入数据。

作为记录,迁移向导是从数据库移动数据到数据库的最糟糕的选择。

于 2013-10-31T19:50:32.300 回答
0

我同意丹尼的观点。备份/恢复是最简单的升级方式。对于无停机升级,您可以使用数据库镜像到新服务器并故障转移到新版本

提高性能的一项重要任务是在升级到新版本时刷新所有统计信息

于 2013-10-31T20:27:05.640 回答