升级SQLServer 2008硬件

原谅我,如果我不能在这里完全清楚。 这不是故意的,我是一个非常小的公司的高级开发人员,现在要像一个经理一样行事。

无论如何,这个故事是,我们有两个较老的戴尔SQL Server 2008标准版服务器在一个“集群”。 我把它放在引号中,因为我还没有100%清楚这意味着什么。 我们有2个全新的刀片服务器,并希望将现有的数据库移动到新的硬件上。

好的,这是一个难题。 我们需要在很less或没有停机的情况下做到这一点。 我被告知我们可以驱逐被动节点,然后拉入其中一台新服务器。 但是我也被告知,这是一个危险的步骤,因为有些事情可能会出错,会导致集群失败,然后我们将一无所有,因为主动服务器将无法恢复。

有没有人有任何想法如何处理这个? 我被告知,确保成功的唯一方法是至less有一天的停机时间,在新的硬件上创build一个新的集群,然后将数据库1逐个迁移。

[编辑]由于它仍然涉及到这个问题,我想补充另一个问题。 是否有可能从集群中删除一台机器。 然后创build一个新的集群与删除的节点作为活动机器,然后把一个新的服务器? 有效地保留旧的群集,而新机器交换进出,以防出现问题?

很less或没有停机时间

尽pipe现在没什么帮助,但您应该运行企业,您需要高可用性,在这种情况下,您将使用的最明显的function是在一个集群中最多可以有16个节点,所以在您的情况下,您只需添加再多2个节点,然后删除你不再需要的节点。 在升级硬件时,我会考虑升级版本

…但是我也被告知,这是一个危险的步骤,因为有些事情可能会出错,会导致集群失败,然后我们将一无所有,因为主动服务器将无法恢复。

一切皆有可能。 虽然我从来没有见过一个服务器208 SQL 2008故障转移群集简单地死了,这是理论上可能的。 请注意,节点升级期间活动节点不是“closures”,因此没有任何关系。 群集只是在1个节点上运行,没有故障转移的可能性。 合理的最坏的情况是旧的节点已经死了,replace将不会被添加,在这种情况下,您将运行没有故障转移function,直到解决导致服务器不添加的问题。

我被告知,确保成功的唯一方法是至less有一天的停机时间,在新的硬件上创build一个新的集群,然后将数据库1逐个迁移。

这可能是确保工作成功的唯一方法。 我会问一个无辜的问题:“如果需要一天的停机时间来移动一个集群,我为什么要集群呢?我可以购买两台机器,然后离开一台,准备好进入这种可用性。 总之,你需要find一个真正与群集合作的人,并理解所涉及的技术。 假设没有独特的问题(EG,你的公司编写了一些几乎可以在集群上运行的集群感知软件),我认为大多数专业的微软pipe理员会觉得尴尬,说要花一天的停机时间来replace/添加硬件,工作组

首先,问题最后的推荐策略是我推荐做的方法,但是看到这不是一种select,我将如何处理它。 您似乎对群集感到困惑,基本上两台服务器都安装了SQL,群集服务,通过群集服务的命令,您可以将SQL从一台服务器“滚动”到另一台服务器。 如果我在你身边,我会按照你的build议去做,把所有的服务都放到一个节点上,从集群中移除第二个节点,把你的新服务器当作一个集群节点,把所有的服务都放到新的集群节点上,添加第二个新节点,从集群中删除第二个旧节点。

**请注意,如果您不熟悉群集服务和/或群集SQL安装,并且您在实时系统上尝试这样做,那么这可能会非常非常糟糕。 远远低于计划停机的一天。 我要么聘请一个具有群集经验的顾问,要么不是一个选项设置一个testing环境htat它可以testing进程内外。

以下链接指向将节点添加到群集的步骤。

除非您想再次使用硬件,否则根本不需要中断旧的群集。 我会build议如下:

  • 用新的刀片创build一个新的集群
  • 新群集上的Isntall SQL,保留驱动器号,path,端口和实例名称(如果适用)相同
  • 安装完成之后,将master和msdb数据库从旧的SQL Server中更新到新的,以获取login名和作业,或者将旧作业的脚本编写出来,然后使用sp_help_revlogins
  • 将数据库从旧服务器logging到新数据库或将数据库镜像到新服务器以获取最新的数据

这将使您的新实例与旧的实例处于相同的状态,同时重新安装操作系统和SQL。 为了切换到新的集群,您可以执行以下操作,假定您的旧实例的名称是INSTA,而新实例的名称是INSTB:

  • 将旧的SQL实例脱机
  • 恢复新服务器上的数据库
  • 从Active Directory的DNS中删除INSTA DNSlogging
  • 在Active Directory DNS中创build一个指向INSTB的新CNAME(别名)DNSlogging

一旦完成,应用程序应该连接SQL实例的旧名称,但会将它们带到新服务器。 您可能需要在所有应用程序服务器上运行“ipconfig / flushdns”,以使DNS更改工作更快,确保ping旧的名称以查看它何时返回。 我们使用这种方法进行转换,因为它允许我们保留旧的簇,以防需要回滚。 在将SQL Servernetworking名称参数更改为其他内容之前,您将无法启动旧的SQL实例,但是一旦完成,只需要将DNS别名重新指向旧别名即可。

在不知道硬件的具体细节的情况下,我的build议是将旧的被动节点映射到新的服务器上。 使用像Acronis这样可以将图像放在新硬件上的应用程序,可以让您基本上将被动节点移动到新的硬件上。 一旦到了那里,你就可以启动它并validation它是否正常工作(尽可能地),然后尝试把它交给新的硬件。 虽然有许多事情可能会出错,但正如Jim B所说的那样,很有可能会正确地将新硬件故障切换到新硬件,或者不能正常工作,只能返回到旧的硬件。 如果有效,那么您可以在另一个节点上重复该过程。 如果没有,你可以重新启动旧的被动节点(你不必摧毁),并尝试其他的东西。