我有一个在 Windows Server 2008 R2 上运行的 2 节点 SQL Server 群集(SQL 2008 sp1)。它是一个主动/被动群集,当前,node1 是主动节点。
节点1上有一个应用程序正在运行。
我需要在集群上放置另一个应用程序。但是,由于资源使用情况,我被问到 node2 是否可以作为这个新应用程序的活动节点。
这可能吗?如果可以,我是否只需创建一个新的 SQL 集群,并像往常一样使用 node2 作为活动应用程序?
答案1
就这么简单。然后你就拥有了一个主动/主动集群。
当然,您需要考虑故障转移时会发生什么:例如,两个应用程序是否会争夺内存?
例如,您有 6GB 内存,但 2 个 SQL Server 实例设置为使用 4GB = 问题。
答案2
正如其他人所说,这是可能的,但如果发生故障转移,则会对性能产生一些影响。
还有另一个约束:您不能有两个默认实例,其中至少一个需要是命名的;这是因为两个实例最终可能位于同一台服务器上,然后需要实例名称来识别它们。
因此,您不仅需要为集群实例提供两个 IP 地址和两个网络名称,还必须为其中至少一个实例使用命名实例。如果您要在网络上使用SQLCLUSTER1
和,您还需要使用和,或(我认为更好)和。这当然需要在您的连接字符串中引用。SQLCLUSTER2
SQLCLUSTER1
SQLCLUSTER2\NamedInstance
SQLCLUSTER1\NamedInstance1
SQLCLUSTER2\NamedInstance2
答案3
当然,这叫做 Active/Active。单个实例无法在两个节点上都处于活动状态,因此第二个节点必须有第二个实例。当然,如果一个节点发生故障,您现在将在一个节点上运行两个实例。如果企业乐意在单节点故障的情况下在资源受限的状态下运行这两个应用程序,那么就去做吧。