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

我目前正在整合专门的服务器,为服务MS SQL Server 2005的服务器提供专门的Web /应用程序服务器,该服务器托pipe着700个stream量非常低的网站。 目标系统包含一个四核5148 Xeon CPU和12 GB的RAM。 两台服务器的内存和CPU负载相对较低(因此整合)。

然而,经过几个小时的Googlesearch之后,我没有创造性的想法,将SQL Server的数据和设置逐字迁移到新的服务器上,而且停机时间最短。 会closures这两个服务器上的服务,实际上是将整个MSSQL.1目录复制到新的服务器上工作,还是对人类犯罪(考虑到我将安装完全相同的MSSQL版本和SP级别)? 请记住,在迁移数据之后,我会将旧服务器的IP添加到新服务器(为了节省客户更新其web.config文件到127.0.0.1的麻烦)。

任何帮助,将不胜感激!

如果所有的path都是一样的,它将工作。 我自己做了几次。

registry项等反映了二进制文件的位置和主数据库的位置。 其他一切都是自包含的(例如,login主)。

你至less会提出两个问题:

  • @@ SERVERNAME将显示旧的服务器名称,因为它来自sys.servers。 按照本指南来解决

  • 任何SQL Server代理作业将由旧服务器“拥有”。 我会脚本他们(在SSMS),并将其应用到新的框,但不复制msdb

如果你有其他的客户端连接(监控等),那么你可以DNS别名旧的服务器名称。 看到这些链接(SO)。 一 , 二和三

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

这是遗漏了一些事情,因为我做了一些假设:

  • 你不处理域的成员资格。 如果你是,你将要确保你有旧的服务器上的本地pipe理员密码(并且该帐户已启用,你可以login – testing这个!)。 将旧服务器从域中删除并重命名。 将新服务器从域中删除。 将其重命名为与旧服务器相同的名称。 将其添加回域。 然后按照将@@ SERVERNAME(以gbn链接)更改为正确名称的步骤进行操作。
  • 没有一个数据库有任何特殊的configuration选项,如FILESTREAM,跨数据库所有权链接等等。如果是这样的话,你需要在旧服务器脱机之前编写脚本。 将数据库联机后,您需要在新服务器上运行该脚本。