成员子集概述

成员子集是一个数据库对象,用于表示数据库别名与服务器列表之间的关系。 服务器列表由 Db2® 实例中的一组成员组成。

借助成员子集,可集中管理应用程序查看数据库环境的拓扑的方式。 应用程序连接至与成员子集关联的特定数据库别名,不需要进行任何其他数据库更改。 可动态调整成员子集定义;利用工作负载均衡的应用程序会在事务边界对这些调整作出反应。

对于基于传输控制协议/因特网协议 (TCP/IP) 的连接,通过成员子集,可对一组特定成员隔离应用程序工作负载。 会将基于 TCP/IP 的连接分配给成员子集。 这些分配基于由要连接至数据库的应用程序提供的数据库别名。 将连接分配给成员子集之后,会将与该成员子集关联的服务器列表返回至客户机。

在几种情况下,成员子集会很有益:
  • 资源利用率:如果应用程序开始使用的资源比通常情况下的更多,那么此额外资源利用率会使较少资源(例如 CPU)可用于其他应用程序。 通过成员子集,可动态隔离要对特定子集运行的应用程序的工作负载。 通过隔离该工作负载,会使其他应用程序保持运行状态而不受影响。
  • 划分资源:如果具有多个活动数据库,那么可通过对每个数据库定义成员子集来在数据库之间划分成员资源。 因此,客户机可针对任何成员驱动工作。 如果具有单个活动数据库,那么可在成员之间划分应用程序。
  • 本地化应用程序: 在地理位置分散的 Db2 pureScale® 集群 (GDPC) 环境中,可以将应用程序本地化为在位于特定站点的一组成员上运行。 运行位于本地站点上的应用程序可提高性能。
  • 客户机亲缘关系: 在 Db2 pureScale 环境中,您可以控制数据库应用程序如何使用 Db2 pureScale 成员 。 在某些情况下,您可能首先想要将应用程序请求从特定 Db2 客户机定向到特定 Db2 pureScale 成员。 如果已连接的 Db2 pureScale 成员 由于中断而关闭,那么您可以将该应用程序请求定向到另一个 成员。 如果第二个 Db2 pureScale 成员 关闭,那么可以将应用程序请求定向到第三个成员。 换言之,您可以提供 Db2 客户机可以连接到的 Db2 pureScale 成员的有序列表。
  • 对应用程序的相等机会:在具有拓扑(该拓扑包括大量数据成员、少量未包含任何数据的应用程序成员以及单个管理成员)的分区数据库环境中,这些应用程序成员通常具有较高的处理能力。 应用程序连接至其中一个应用程序成员。 通过定义具有服务器列表的成员子集并且对其中每个应用程序成员指定相等优先级,成员子集可为其中每个应用程序成员提供相等优先级。
一个成员子集由以下各项组成:
  • 名称:在数据库内必须唯一的成员子集名称。
  • 标识:成员子集的基于整数的唯一标识。 该值由 DB2 产品生成。
  • 数据库别名:数据库的别名,应用程序必须连接至该数据库以便分配给此成员子集。
  • 状态:状态为“已启用”或“已禁用”。 该状态控制当确定要将数据库连接分配给哪个成员子集时是否考虑该成员子集。 如果该子集已禁用,那么会拒绝分配给成员子集的连接请求。
  • 成员集:当执行工作负载均衡时,已分配给子集的应用程序使用的一组成员(一个或多个)。
  • 故障转移优先级:控制子集中成员的故障转移顺序以实现 HA 目的。
  • 成员优先级基础属性:控制如何计算子集服务器列表内每个成员的优先级。
  • 相容或互斥属性:控制未显式包括在成员子集中的成员是否出于 HA 目的而包括在成员子集服务器列表内。 如果成员子集中的任何成员都不可用,那么已分配给该子集的应用程序会使用非该子集中的成员。 非该子集中的成员不会用于工作负载均衡。 已分配给互斥成员子集的应用程序仅使用该子集中的成员。
  • 替代服务器属性:控制在没有任何其他成员可用的情况下是否使用通过 UPDATE ALTERNATE SERVER 命令编目的主机名和端口。 不会将此地址用于工作负载均衡。

成员子集是根据需要通过使用一组管理例程来创建、变更和删除的。 有关详细信息,请参阅 管理成员子集定义

当使用 TCP/IP 通信管理器时,服务器列表会返回至客户机,并且包含每个成员的主机名、端口和优先级信息。 有关详细信息,请参阅 维护特定于成员子集的服务器列表