将 SQL 2000 移至新硬件和操作系统。如何复制所有内容

将 SQL 2000 移至新硬件和操作系统。如何复制所有内容

我们正在用运行 Windows Server 2003 但仍运行 SQL 2000 的新硬件替换运行 SQL 2000 的 Windows NT 服务器。最简单的方法是什么?

我们知道如何通过备份和恢复或移动和重新附加数据文件来复制普通数据库等,但我们还需要复制登录、DTS 包、SQL 代理作业等。我们已经找到了如何使用 DTS 包执行此操作的说明,尽管避免孤立登录等似乎有点复杂。

假设我们只想复制所有内容,我们可以复制系统数据库,然后将所有内容放在一个存储桶中吗?我还没有找到任何信息来表明这是否可行,或者系统数据库中是否有太多操作系统和其他安装特定内容而无法实现。

谢谢

答案1

不建议(也不支持)用另一个服务器实例的数据库覆盖系统数据库,但从技术上讲这是可行的。我很多更喜欢自己迁移这些部分。在新的 Win2003 服务器上干净地安装新的 SQL 2000 实例,然后将所有内容转移到干净的实例上,这样你会更开心。

您拥有的数据库,无论是备份/恢复还是分离/重新连接。

您可以使用以下方式复制登录信息帮助. 在源实例上创建 proc,在源上运行它以生成将重新创建登录的脚本(维护 SID 和所有有趣的东西),然后在新服务器实例上运行生成的脚本。

可以使用以下方法迁移 DTS 包备份软件. 效果很好。

可以从原始服务器编写 SQL 代理作业脚本,然后在目标服务器上重新创建。

如果服务器主机名发生变化,您将必须在新服务器上执行更多操作:

  • sp_dropserver 'oldservername'
  • sp_addserver 'newservername','local'
  • 修复旧服务器上所有者为本地用户的作业所有权问题
  • UPDATE msdb.dbo.sysjobs set originating_server='newservername'

如果你在旧服务器上有链接服务器,你可以使用脚本SQL Server Central 上的此页面(请注意,您可能需要注册才能查看 - 无论如何,注册是免费的,而且值得)。您需要在新服务器上重新创建密码,它不会将密码保留下来。还有一个以前使用的工具,名为ScriptLinkedServers.exe,但我现在找不到它。

编辑:找到了 -CodeProject 上的 ScriptLinkedServers 工具

祝你好运!

答案2

如果您将 SQL 安装到新服务器上的相同路径,您应该能够从旧服务器获取 MSSQL 文件夹(关闭服务后)并将其复制到新服务器的 MSSQL 文件夹之上,并且它应该是精确的副本。您需要使用内置程序更新 sysservers 表,以便让 @@servername 显示新主机名。

http://support.microsoft.com/kb/303774

相关内容