将SQL 2000移到新的硬件和O / S。 如何复制一切

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

我们知道如何复制正常的数据库等,无论是通过备份和恢复,或移动和重新附加的数据文件,但我们也需要复制login,DTS包,SQL代理作业等我们已经find了如何使用DTS包尽pipe避免孤儿login似乎有些复杂

鉴于我们只是想复制一切,我们可以复制系统数据库,因此把一切都放在一个桶里,可以这么说吗? 我还没有真正find任何信息来表明这是否可行,或者系统数据库中是否有太多的O / S和其他安装特定的东西来运行。

谢谢

不build议(不支持)用另一个服务器实例覆盖系统数据库,但技术上是可行的。 我喜欢自己移动这些作品。 在新的Win2003服务器上安装新的SQL 2000实例,然后将其转移到干净的实例上,这样会更快乐。

你有数据库,备份/恢复或分离/重新附加。

您可以使用sp_help_revlogin复制login。 在源实例上创buildproc,在源代码上运行以生成一个脚本,它将重新创buildlogin(保持SID和所有有趣的东西),然后在新的服务器实例上运行生成的脚本。

DTS包可以使用DTSBackup 2000进行迁移。 很好用。

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

如果服务器主机名更改,则必须在新服务器上执行一些其他操作:

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

如果您已经在旧服务器上链接了服务器,则可以在SQL Server Central上的此页面上使用该脚本(请注意,您可能需要注册才能查看该脚本 – 无论如何都是免费且值得的)。 您需要在新服务器上重新创build密码,但不会将其带回。 还有一个工具,曾经使用称为ScriptLinkedServers.exe ,但我现在找不到它。

编辑:find它 – CodeProject上的ScriptLinkedServers工具

祝你好运!

如果您将SQL安装到新服务器上的相同path,则应该能够从旧服务器获取MSSQL文件夹(closures服务之后),并将其复制到新服务器的MSSQL文件夹的顶部,并且应该是完全相同的副本。 您将需要使用内置过程来更新sysservers表,以便使@@ servername显示新的主机名。

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