在硬件节点之间迁移 SQL Server 2005

在硬件节点之间迁移 SQL Server 2005

我目前正在整合一台运行 MS SQL Server 2005 的专用服务器和一台托管约 700 个流量极低的网站的专用 Web/应用程序服务器。目标系统装有四核 5148 Xeon CPU 和 12 GB RAM。两台服务器上的内存和 CPU 负载都相对较低(因此进行了整合)。

然而,经过几个小时的谷歌搜索,我还是想不出如何将 SQL Server 数据和设置逐字逐句地迁移到新服务器,同时尽量减少停机时间。关闭两台服务器上的服务并将整个 MSSQL.1 目录实际复制到新服务器是否可行,或者这是反人类罪(考虑到我将安装完全相同的 MSSQL 版本和 SP 级别)?请记住,在迁移数据后,我会将旧服务器的 IP 添加到新服务器(以免客户麻烦将其 web.config 文件更新为 127.0.0.1)。

任何帮助,将不胜感激!

答案1

如果所有路径都相同,它就会起作用。我自己已经做过几次了。

注册表项等反映了二进制文件的位置和主数据库的位置。其他所有内容都是独立的(例如主数据库中的登录信息)。

您至少会提出两个问题:

  • @@SERVERNAME 将显示旧的服务器名称,因为它来自 sys.servers。关注本指南修理

  • 任何 SQL Server 代理作业都将由旧服务器“拥有”。我会编写脚本(在 SSMS 中)并将它们应用到新机器上,但不会复制 msdb

如果您有任何其他连接的客户端(监控等),那么您可以 DNS 别名旧服务器名称。请参阅这些链接(SO)。

答案2

  1. 设置新的 SQL Server 并使其运行。
  2. 使用以下知识库文章将登录信息从旧的转移到新的。
  3. 从旧数据库服务器,使用新 SQL Server 的路径编写 CREATE DATABASE ... FOR ATTACH 脚本。保存脚本并将其放在可以从新服务器访问的位置。
  4. 关闭旧的 SQL Server。将数据和日志文件复制到新服务器上的适当位置。
  5. 运行 CREATE DATABASE ... FOR ATTACH 脚本以使所有数据库联机。

由于我做了一些假设,因此遗漏了一些事项:

  • 您无需处理域成员身份。如果要处理,您需要确保您拥有旧服务器上的本地管理员密码(并且该帐户已启用,您可以使用它登录 - 测试一下!)。将旧服务器从域中删除并重命名。将新服务器从域中删除。将其重命名为与旧服务器相同的名称。将其重新添加到域中。然后按照将 @@SERVERNAME(如 gbn 链接的)更改为正确名称的步骤进行操作。
  • 所有数据库都没有任何特殊配置选项,如 FILESTREAM、跨数据库所有权链接等。如果有,您需要在将旧服务器脱机之前编写这些选项的脚本。将数据库联机后,您需要在新服务器上运行该脚本。

相关内容