如何最好地从旧的 SQL 2000 服务器迁移到具有新名称的新 SQL 2008 服务器

如何最好地从旧的 SQL 2000 服务器迁移到具有新名称的新 SQL 2008 服务器

我们有一台旧的 SQL 2000 服务器,我们称其为“oldSQL2K”,还有一台新的 SQL 2008 服务器,我们称其为“newSQL2K8”。两者都在生产中。oldSQL2K 上有大约 90 个用户数据库,人类可以通过 ODBC 连接访问,应用程序也可以通过 SQL 登录访问。

我正在寻找有关如何最好地将数据库从 oldSQL2K 迁移到 newSQL2K8 的建议。

我已经手动迁移了大约十几个数据库,方法是对旧数据库进行 SQL 备份,对新数据库进行 SQL 还原。我已经将所有 SQL 日志从旧数据库迁移到新数据库,所以一切就完成了。

作为一项实验,我尝试了简单的 DNS 名称更改,但当然失败了。

挑战如下:我们支持的“必须继续存在”的遗留应用程序之一将旧 SQL2000 服务器名称嵌入到编译代码中,而源代码已经消失!说来话长,这不是我的错,但现在是我的问题。该应用程序在大约 50 个工作站上运行。

我们的服务中心已确定约有一千个工作站将受到此次迁移的影响。哎哟。

我们确实在上述 50 个工作站上安装了 SQL Client Network 实用程序,并且在那里更新别名确实有效。不过,如果可能的话,我还是想避免在其他工作站和服务器上安装它。

那么各位,如果是您的话,您会如何进行这次迁移呢?

答案1

我会像你一样进行迁移,但要隔离那些无法轻易更改的“必须保持活动”应用程序,并将它们留在旧服务器上。然后,如果你有 VM 环境,则虚拟化 SQL2000 服务器。除非你遇到性能问题并需要更多处理空间,否则旧应用程序可能不会从迁移到 SQL2008 中受益,而 VM 将不断提醒你真正应该替换的坏应用程序。

答案2

将剩余部分虚拟化是一个非常好的想法……或者,您可以将它们移动到 SQL Server 2008(在测试它们仍然有效之后),并使用 DNS magic 重新指向。我见过很多次这样做 - 虽然不太干净,但确实有效。

答案3

我以前也遇到过类似的进退维谷的情况,采取的方法是转移到另一台 SQL 2000 服务器,该服务器可以轻松更改,但无法升级到 2008,一旦您只剩下几个应用程序(如您提到的应用程序),服务器名称就无法更改,我们从域中删除旧服务器并将其关闭,并在指向新 SQL 服务器的 DNS 别名中存根。使用隔离网络可以帮助您解决生产设置中遇到的所有问题,而不会干扰任何事情。

如果您有一个隔离网络(或者可以创建一个),您可以在其中复制服务器名称并至少有一个客户端进行测试,我会使用它进行评估。这将允许您测试 DNS 别名。复制每个给定数据库的备份并将其还原到 SQL 2008 x64 或您的生产服务器的任何版本/体系结构,并使用每个数据库的不同兼容性级别进行测试。

我希望这能给你带来一些想法!

相关内容