在一个 Microsoft 群集服务 (MSCS) 故障转移群集中可以安装最多 个 Microsoft®SQL Server; 实例
通过运行群集中某个节点上的 SQL Server 安装程序安装 SQL Server 实例安装程序将实例安装在安装过程中指定的故障转移群集中的节点上SQL Server 可执行文件安装在故障转移群集中每一节点的本地磁盘驱动器上这意味着每一节点都必须有本地硬盘分配给该硬盘的驱动器号应与所有其它节点上的相同而且该驱动器号必须在安装过程中为 SQL Server 可执行文件指定的位置路径中例如如果指定 C\Program Files\Microsoft SQL Server 作为安装 SQL Server 可执行文件的位置则群集中每一节点都必须使驱动器号 C 映射到本地驱动器实例的注册表信息也存储在故障转移群集中每一节点的注册表中
MSCS 群集组是共享资源(如某个故障转移群集节点所拥有的共享磁盘驱动器)的集合该组的所有权可以在节点间转让但每个组一次只能由一个节点拥有SQL Server 实例的数据库文件放置在单个 MSCS 群集组中该群集组由安装此实例的节点拥有如果运行某个 SQL Server 实例的节点发生故障则 MSCS 将包含该实例数据文件的群集组切换至另一个节点因为新节点的本地磁盘驱动器上已经有该 SQL Server 实例的可执行文件和注册表信息所以它可以启动该 SQL Server 实例并开始接受连接该实例的请求
因为 SQL Server 实例的可执行文件和注册表信息存储在每一节点中所以 SQL Server 对每台计算机只能有 个实例的限制也适用于每个故障转移群集故障转移群集中的每一实例要么必须有唯一的实例名要么必须是默认实例在每个故障转移群集中只能有一个默认实例
保存实例数据库文件的 MSCS 群集组在 SQL Server 安装过程中与一个 SQL Server 虚拟服务器名称相关联每台虚拟服务器只能有一个实例这也意味着只能有一个实例与任一群集组相关联
当应用程序尝试连接一个运行在故障转移群集上的 SQL Server 实例时应用程序必须指定虚拟服务器名称和实例名只有当与虚拟服务器关联的实例是没有名称的默认实例时应用程序才不必指定实例名
例如
◆Windows 群集管理员创建了一个故障转移群集该群集有两个节点NodeA 和 NodeB每一节点都将驱动器号 C 映射到本地硬盘上
◆在该群集中有一个共享磁盘群集管理员创建 ClusterGroupA 来控制该驱动器并把它指派给 NodeA
◆SQL Server 系统管理员运行安装程序在 NodeA 上安装 SQL Server 默认实例在安装过程中管理员指定 SQL Server 虚拟服务器名称为 VirtualServerX并指定将数据库文件放置在 ClusterGroupA 中的驱动器上安装程序在本地驱动器 NodeA 和 NodeB 上安装 SQL Server 可执行文件并将数据库文件放置在 ClusterGroupA 中
◆尝试连接默认实例的应用程序只需指定虚拟服务器名称 VirtualServerA默认实例通常运行在 NodeA 上然而如果 NodeA 发生故障则 MSCS 群集将 ClusterGroupA 的所有权转让给 NodeB并重新启动 NodeB 上的默认实例应用程序仍将通过指定虚拟服务器名称 VirtualServerX 连接默认实例