如何将 SQL 2000 数据库升级到 SQL 2005 - 需要确认?

0 sql-server-2000

我需要确认一个标准的SQL 2000 数据库升级到SQL 2005 的过程。据我了解,至少有2 种升级方法。返回\恢复和分离\附加数据库。就我而言,我需要将原始 SQL 2000 数据库保持在线状态,因此我认为最好执行 Back\Restore。有人可以确认下面的过程并阐明我的问题吗?

  1. 在 SQL 2000 服务器上
    1. 对数据库进行完整备份
    2. 数据库->[数据库]->所有任务->备份数据库...,选择“完整”,并保存文件(.bak)
    3. 将备份文件 (.bak) 移动到新的 SQL 2005 服务器
  2. 在新的 SQL 2005 服务器上
    1. 将 .MDF 和 .LDF 文件从旧的 SQL 2000 Server 复制到新的 SQL 2005 Server。
    2. 如果需要,将文件重命名为更标准的名称
    3. 创建一个新的 SQL 2005 数据库。
    4. 执行备份文件 (.bak) 的还原
    5. 选择“选项”选项卡。这将包含备份文件中的 mdf 和 ldf 位置。将这些更改为新服务器上的合法目录。
    6. 将兼容性更改为“SQL Server 2005 (90)”问题:
  3. 什么执行升级?
  4. SQL 2000 数据库是否在还原期间由 SQL 2005 引擎自动升级?
  5. 我是否需要将 .MDF 和 .LDF 文件从旧的 SQL 2000 Server 复制到新的 SQL 2005 Server?
  6. 我需要创建一个新的 SQL 2005 数据库吗?

在此先感谢您的帮助。乔治

Cra*_*ein 5

由于您使用的是备份/恢复方法,因此您无需将数据库 (mdf) 和日志文件 (ldf) 复制到新服务器,只需将备份文件复制即可。您也不需要重新创建数据库。数据库、数据库文件和日志文件都将在还原过程中创建。升级过程由 SQL Server 在还原数据库备份时完成。

这是我使用的方法:

在 SQL Server 2000 上

  1. 执行数据库的完整备份
  2. 执行数据库的日志备份“捕获自上次事务日志备份以来写入的事务日志记录”。如果您不希望人们在完成后访问数据库,请考虑使用 WITH NORECOVERY 选项。
  3. 将完整的数据库和日志备份文件复制到装有 SQL Server 2005 的服务器

在 SQL Server 2005 上

  1. 使用 NORECOVERY 恢复完整备份确保您更改了帖子中提到的目录。
  2. 使用 RECOVERY 恢复日志备份

一旦数据库在新服务器上恢复。我在新的查询窗口中运行以下命令

  1. USE [mydb]
  2. sp_updatestats -- updates statistics 这是因为在升级过程中不会自动更新统计信息。
  3. DBCC CHECKDB WITH DATA_PURITY

导致 DBCC CHECKDB 检查数据库中的列值是否无效或超出范围。从 SQL Server 2000 升级到 2005 或 2008 时,这一点很重要。

将数据库用户与登录关联

现在您的数据库已经恢复,您需要将其孤立用户与实际登录相关联。

方法 A:修复孤立用户

  1. EXEC sp_change_users_login 'Report' -- 查找孤立用户
  2. 如果登录名已经存在,您可以将孤立用户与登录名关联。否则,您可以创建登录

-- 登录存在

EXEC sp_change_users_login 'Auto_Fix', 'user' 
Run Code Online (Sandbox Code Playgroud)

-- 登录不存在

EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'
Run Code Online (Sandbox Code Playgroud)

方法 B:sp_help_revlogin

您还有一个名为 sp_help_revlogin 的替代方法,它不仅可以帮助您恢复登录名,还可以帮助您恢复随之而来的原始密码。

http://support.microsoft.com/kb/246133/en-us

它本质上需要在旧服务器上创建一个存储过程来生成一个脚本,该脚本将输出所有现有的登录信息。然后将该存储过程的输出复制到新服务器并恢复与您恢复的数据库相关联的登录名。