我们正在用运行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显示新的主机名。