您可以将SQL Server 数据库引擎升级到 SQL Server 2008。
SQL Server 安装程序只需最少的用户干预就可升级 SQL Server 的早期版本。不过,正确的准备工作和熟悉升级过程可以更容易防止或解决出现的任何问题。
本主题提供了为升级过程进行准备和了解升级过程所需的信息,其中包括:
已知升级问题。
升级前的任务和注意事项。
有关升级数据库引擎的过程主题的链接。
将数据库迁移至 SQL Server 的过程主题的链接。
故障转移群集的注意事项。
升级后的任务和注意事项。
重要提示:
在从 SQL Server 的某一版本升级到另一版本之前,请验证要升级到的版本是否支持当前使用的功能。
升级准备一览表
SQL Server 安装程序支持从早期版本的 SQL Server 进行升级。也可以迁移早期 SQL Server 版本中的数据库。可以从一个 SQL Server 实例迁移至同一台计算机上的另一个实例,也可以从另一台计算机上的 SQL Server 实例迁移。迁移选项包括使用复制数据库向导、备份和还原功能、使用 SQL Server Integration Services 导入和导出向导,以及大容量导出/大容量导入方法。
请在升级 SQL Server 之前检查下列问题并做出更改:
从 64 位版本的 SQL Server 升级到 64 位版本的 SQL Server 2008 时,必须在升级数据库引擎之前先升级 Analysis Services。
如有必要,请备份要升级的实例中的所有 SQL Server 数据库文件,以便可以还原这些文件。
在要升级的数据库上运行适当的数据库控制台命令 (DBCC),以确保这些数据库处于一致状态。
估计升级 SQL Server 组件以及用户数据库所需的磁盘空间。
确保将现有的 SQL Server 系统数据库(master、model、msdb 和 tempdb)配置为自动增长,并确保它们具有足够的硬盘空间。
确保所有数据库服务器的 master 数据库中都有登录信息。这对还原数据库很重要,因为 master 数据库中有系统登录信息。
禁用所有启动存储过程,因为升级过程在升级 SQL Server 实例时将停止然后再启动服务。在启动时进行处理的存储过程可能会阻塞升级过程。
停止复制并确保复制日志是空的。
升级 SQL Server 2000 数据库引擎实例的操作会保留最大工作线程数的配置值。但是,建议在升级前将最大工作线程数值更改为 0,以允许数据库引擎计算最佳线程数。
退出所有应用程序,包括所有依赖 SQL Server 的服务。如果有本地应用程序连接到要升级的实例,则升级可能会失败。
升级数据库引擎
可以用升级版本覆盖 SQL Server 2000 或 SQL Server 2005 安装。如果在运行 SQL Server 安装程序时检测到 SQL Server 的早期版本,将升级所有早期 SQL Server 程序文件,并且保留早期 SQL Server 实例中存储的所有数据。此外,计算机上早期版本的 SQL Server 联机丛书将保持不变。
注意:
在升级 SQL Server 后,早期的 SQL Server 实例将被覆盖,在计算机中不再存在。因此在升级前,请备份 SQL Server 数据库以及与早期的 SQL Server 实例相关的其他对象。
可以使用 SQL Server 安装向导升级数据库引擎。
注意:
如果计算机安装了 SQL Server 2000 管理工具和 SQL Server 2008 的默认实例,则 SQL Server 安装程序将允许您安装 SQL Server 2000 默认实例。但这样做将禁用已安装的 SQL Server 2008 实例。因此,当计算机中已存在 SQL Server 2000 管理工具和 SQL Server 2008 的默认实例时,请不要安装 SQL Server 的默认实例。
升级后的数据库兼容级别
升级后,tempdb、model、msdb 和 Resource 数据库的兼容级别将设置为 100。master 系统数据库保留它在升级之前的兼容级别,除非该级别小于 80。如果 master 的兼容级别在升级前小于 80,升级后兼容级别将设置为 80。
如果升级前用户数据库的兼容级别为 80 或 90,升级后将保持相应级别。如果升级前兼容级别为 70 或更低,则在升级后的数据库中,兼容级别将设置为 80,该级别为 SQL Server 2008 支持的最低兼容级别。
注意:
新的用户数据库将继承 model 数据库的兼容级别。
迁移数据库
可以使用 SQL Server 中的备份和还原功能或分离和附加功能将用户数据库移动到 SQL Server 实例。
重要提示:
数据库在源服务器和目的服务器上的名称相同时,不能进行移动或复制。在这种情况下,它被标记为“已存在”。
#p#
升级数据库引擎后
升级数据库引擎后,请完成以下任务:
重新注册服务器。
重新填充全文目录。此操作可以提高 SQL Server 安装的性能。
从 SQL Server 2000 升级后,更新所有数据库的统计信息。使用 sp_updatestats 存储过程可以更新 SQL Server 数据库中用户定义的表中的统计信息。如果从 SQL Server 2005 升级,则不必执行此步骤。
对所有数据库运行 DBCC UPDATEUSAGE 来更正任何不正确的行或页计数。
配置 SQL Server 安装。为了减少系统的可攻击外围应用,SQL Server 有选择地安装和启用了一些关键服务和功能。
验证或删除 USE PLAN 提示,这些提示由 SQL Server 2005 生成并应用于对已分区表和索引的查询。
SQL Server 2008 更改了对已分区表和索引的查询方式。如果已分区对象将 USE PLAN 提示用于 SQL Server 2005 生成的计划,针对这些对象的查询可能会包含不可在 SQL Server 2008 中使用的计划。建议升级到 SQL Server 2008 后,执行下列过程。
如果在查询中直接指定 USE PLAN 提示:
从查询删除 USE PLAN 提示。
测试查询。
如果优化器未选择相应的计划并优化查询,请考虑使用所需的查询计划指定 USE PLAN 提示。
如果在计划指南中指定 USE PLAN 提示:
使用 sys.fn_validate_plan_guide 函数来检查计划指南的有效性。或者,可以使用 SQL Server Profiler 中的 Plan Guide Unsuccessful 事件检查是否存在无效计划。
如果计划指南无效,则删除该计划指南。如果优化器未选择相应的计划并优化查询,则考虑使用所需查询计划指定 USE PLAN 提示。
当在计划指南中指定 USE PLAN 提示时,无效的计划将不会导致查询失败。相反,仍可在不使用 USE PLAN 提示的情况下对计划进行编译。
在升级前标记为启用或禁用全文的数据库,在升级后也将保持该状态。升级后,将为所有启用全文的数据库自动重新生成并填充全文目录。此项操作既耗时又耗费资源。可以通过运行以下语句暂停全文索引操作:
EXEC sp_fulltext_service 'pause_indexing', 1 |
若要恢复全文索引填充,请运行以下语句:
EXEC sp_fulltext_service 'pause_indexing', 0 |
【编辑推荐】