连接管理器配置文件的参数

要设置连接管理器,您必须创建连接管理器配置文件。

CMALARMPROGRAM 参数
指定在故障转移处理遇到错误时要运行的程序或脚本的路径和文件名。如果故障转移处理失败,那么连接管理器将调用 CMALARMPROGRAM 指定的程序。
在以下示例中,如果故障转移处理失败,将调用 cmalarmprogram.sh
${GBASEDBTDIR}/etc/cmalarmprogram.sh
${GBASEDBTDIR}GBASEDBTDIR 环境变量的值。
CM_TIMEOUT 参数
指定在下一个可用连接管理器成为故障转移仲裁器之前,数据库服务器等待从故障转移仲裁器连接管理器接收事件的秒数。 如果未指定 CM_TIMEOUT,超时为 60 秒。
DEBUG 参数
指定是启用还是禁用调试方式。
  • 1 启用 SQL 和 ESQL/C 错误消息的日志记录。
  • 0 禁用 SQL 和 ESQL/C 错误消息的日志记录。
如果连接管理器配置文件中未指定 DEBUG,将禁用调试方式。

不能从命令行启用调试方式。

EVENT_TIMEOUT 参数
指定连接管理器在开始故障转移处理之前,等待主服务器事件的秒数。主服务器事件由主服务器发出,用于表明该服务器仍在运行,如性能统计信息、节点更改或管理消息。
  • -1 表示连接管理器无限期等待来自主服务器的事件,或等到收到某个辅助服务器有关主服务器已脱机的通知为止。
  • 值 0 到 30 会读取为 30。
如果连接管理器配置文件中未指定 EVENT_TIMEOUT,那么连接管理器在开始故障转移处理之前,将等待主服务器事件 60 秒。
FOC 参数和属性
指定连接管理器用于确定在主服务器发生故障时由哪台服务器进行接管的故障转移配置。FOC 参数对于连接单元类型 REPLSET、GRID 和 SERVERSET 无效。
重要: 如果指定了 FOC 参数并且故障转移处理开始,那么在故障转移处理完成之前,不能手动重新启动发生故障的主服务器。
表 1. FOC 参数的属性
FOC 参数的属性 描述
ORDER
指定服务器类型的逗号分隔列表,或指定服务器类型列表是否来自集群的主服务器的 HA_FOC_ORDER 配置参数。 要配置多个连接管理器实例来管理高可用性集群,请在主服务器的 onconfig 文件中设置 HA_FOC_ORDER 配置参数。
  • ENABLED 指定在故障转移仲裁时会考虑连接管理器,并使用主服务器的 HA_FOC_ORDER 配置参数值来确定节点故障转移顺序。
  • DISABLED 禁止连接管理器进行故障转移处理。如果禁用了故障转移处理,连接管理器将忽略故障转移请求。
  • HDR 指定高可用性数据复制辅助服务器。
  • RSS 指定远程独立辅助服务器
  • SDS 指定共享磁盘辅助服务器。
如果未指定 ORDER 属性,并且未设置主服务器的 HA_FOC_ORDER 配置参数,那么故障转移的顺序依次为 SDS、HDR 和 RSS。
重要: 如果 FOC 参数的 PRIORITY 属性设置为正整数,那么 ORDER 属性必须设置为 ENABLED。
PRIORITY 指定在应用程序所在相同主机上或在高可用性集群中应用程序服务器上运行的连接管理器的故障转移优先级。PRIORITY 值必须为 0 或者正整数值,并且在配置为管理特定集群的所有连接管理器中必须是唯一的。
  • 0 指定在发生集群网络故障后禁用故障转移。如果活动的仲裁器连接管理器检测到主数据库服务器处于不活动状态,或者如果与主数据库服务器的连接丢失,那么该仲裁器连接管理器将开始故障转移。
  • 1 指定连接管理器具有最高优先级。
重要: 如果 PRIORITY 值设置为正整数,那么 FOC 参数的 ORDER 属性必须设置为 ENABLED。

如果未指定 PRIORITY 属性,那么在发生集群网络故障后将禁用连接管理器故障转移。

仅当优先级最高的连接管理器可以保持与新的主数据库服务器的有效连接时,才能执行故障转移。例如,如果 PRIORITY=2 的连接管理器尝试执行故障转移时,PRIORITY=1 的连接管理器与主数据库服务器的连接会丢失,那么将阻塞该故障转移请求。然而,如果 PRIORITY=1 的连接管理器尝试开始故障转移时,PRIORITY=2 的连接管理器与主数据库服务器的连接会丢失,那么将允许该故障转移请求继续。

RETRY 指定连接管理器尝试完成故障转移期间,在 ORDER 属性值中循环的次数。在未成功故障转移的情况下达到 RETRY 限制后,将生成警报,并且连接管理器会终止自动执行的故障转移尝试。
  • 0 指示连接管理器无限期地继续故障转移处理。
如果未指定 RETRY 属性,连接管理器将在 ORDER 属性值中循环一次。
TIMEOUT 指定连接管理器在开始故障转移处理之前,再等待主服务器事件的秒数。

TIMEOUT 属性值在超出 EVENT_TIMEOUT 参数值后应用。例如,如果 EVENT_TIMEOUT 参数设置为 60,而 TIMEOUT 值设置为 10,那么必须在经过 70 秒都没有收到任何主服务器事件的情况下,才能开始故障转移。

如果未指定 TIMEOUT 属性,那么故障转移将在超出 EVENT_TIMEOUT 参数值指定的时间量后立即开始。

GBASEDBTSERVER 参数
指定初始化期间连接管理器连接到的数据库服务器。
LOCAL_IP 参数
指定运行连接管理器的计算机上要监视的 IP 地址。LOCAL_IP 参数与 FOC 参数的 PRIORITY 属性结合使用。必须列出要监视的每块网络接口卡的 IP 地址。
LOG 参数
为连接管理器方式指定日志记录。
  • 0 指定不进行日志记录。
  • 1 指定记录有关 PROXY 和 REDIRECT 服务级别协议的连接信息。
  • 2 仅记录 PROXY 方式 SLA 信息,并指定记录客户机和连接管理器之间的数据发送和接收活动。
  • 3 仅记录 PROXY 方式 SLA 信息,并指定记录客户机与连接管理器之间的数据内容。
如果未设置 LOG 参数,将禁用日志记录。
LOGFILE 参数
指定连接管理器日志文件的名称和位置。连接管理器启动时会显示该日志文件的路径和文件名,并且在连接管理器运行期间,该日志文件会持续更新状态信息。 该日志文件对于监视和故障诊断用途是必需的。
确保该日志文件的目录存在,并且已为启动连接管理器的用户启用对该文件的访问权。

如果未设置 LOGFILE 参数,连接管理器将在 $GBASEDBTDIR/tmp 目录中创建日志文件,名称为 connection_manager_name.process_ID.log

在以下示例中,cm.log 是连接管理器日志文件:
${GBASEDBTDIR}/tmp/cm.log
${GBASEDBTDIR}GBASEDBTDIR 环境变量的值。
MACRO 参数
指定宏的名称和服务器名称列表。宏在用于 SLA 定义时将成为服务器名称列表。
例如,以下参数定义名为 CA 的宏,其中列出了三台服务器:
MACRO CA=ca1,ca2,ca3
通过用圆括号将服务器列表括起,可以在宏内定义负载均衡(其中连接基于所列数据库服务器的 CPU 使用率进行定向):
MACRO CA=(ca1,ca2,ca3)
MACRO 参数可以设置多次以创建多个宏。 例如:
MACRO NorthCA=ca1,ca2,ca3
MACRO SouthCA=ca4,ca5,ca6
NAME 参数
指定连接管理器实例的名称。 连接管理器实例的名称对于监视、关闭或重新装入连接管理器是必需的。如果未设置 NAME 参数,那么第一个 SLA 的名称将用作连接管理器实例名称。连接管理器实例名称必须唯一。
SECONDARY_EVENT_TIMEOUT 参数
指定连接管理器在与辅助服务器断开连接之前,等待辅助服务器事件的秒数。
  • -1 表示连接管理器无限期等待来自辅助服务器的事件。
  • 值 0 到 30 会读取为 30。
如果未设置 SECONDARY_EVENT_TIMEOUT 参数,超时将为 60 秒。
SLA 参数
SQLHOSTS 属性
客户机应用程序使用 SLA 名称连接到 DBSERVERS 属性值指定的数据库服务器或数据库服务器类型。对于每个 SLA,侦听器线程会安装在服务器上的指定端口处,用于检测入局客户机请求。SLA 参数可以在同一配置文件中多次指定;但是,每个 SLA 名称必须唯一。
在一些可选属性可以在 SLA 定义中进行设置:
  • 每个 SLA 通常在 sqlhosts 文件中都有一个对应的条目;但是,用户可以改为通过设置 NETTYPE、HOST、SERVICE 和 SQLHOSTSOPT 属性,在 SLA 内部指定 sqlhots 信息。例如,可以在 SLA 中输入以下 sqlhosts 条目中的值:
    #dbserver  nettype  hostname  servicename  options
    oltp1      onsoctcp host_1    sales_1      csm=path
    SLA 条目:
    SLA oltp1 DBSERVERS=primary \
              NETTYPE=onsoctcp \
              HOST=host_1 \
              SERVICE=sales_1 \
              SQLHOSTSOPT="cms=path"
  • MODE 属性指定连接请求是通过连接管理器传递,还是由连接管理器重定向。
  • POLICY 属性指定连接管理器如何确定选择列出的哪个数据库服务器来接收连接请求。
  • USEALIASES 属性指定连接管理器是否可以将客户机连接请求重定向到 DBSERVERALIASES 配置参数指定的数据库服务器。
表 2. SLA 参数的必需属性和值。
必需属性
DBSERVERS 指定服务器、服务器别名、服务器类型或先前定义的用于定向连接请求的宏。 用圆括号将列表括起可启用负载均衡,其中连接将定向到 CPU 利用率最低的服务器。
  • ANY 指定连接请求可以发送到任何可用的数据库服务器。
  • HDR 指定连接请求可以发送到高可用性数据复制服务器。
  • PRIprimary 指定连接请求可以发送到主数据库服务器。
  • SDS 指定连接请求可以发送到共享磁盘辅助服务器。
  • RSS 指定连接请求可以发送到远程独立辅助服务器。
  • 特定服务器名称或别名指定连接请求可以发送到具有该名称或别名的数据库服务器。
  • ${macro} 指定连接请求可以发送到配置文件头中的宏内所定义的数据库服务器。
表 3. SLA 参数的可选属性和值。
可选属性
MODE 指定连接请求是通过连接管理器传递,还是由连接管理器重定向。
  • PROXY 指定客户机连接将连接管理器用作代理服务器。客户机应用程序无法连接到位于防火墙后面的数据库服务器时,请使用代理方式。 由于代理服务器连接管理器将处理所有客户机请求,因此配置多个连接管理器实例可避免连接管理器成为单个故障点。
  • REDIRECT 指定客户机连接使用重定向方式,这将连接管理器配置为向客户机应用程序返回相应服务器节点、IP 地址和端口号。客户机应用程序使用连接管理器返回的 IP 地址和端口号来连接到数据库服务器。
如果未设置 MODE 属性,连接请求将由连接管理器重定向。
POLICY 指定连接管理器如何定向客户机连接请求。指定 LATENCY 并不表示特定等待时间段;而是表示连接管理器将使用采用相对值的公式来确定将客户机连接请求定向到的位置。
  • LATENCY 指定连接管理器将连接请求定向到等待时间最短的服务器。
  • FAILURE 指定连接请求将定向到应用失败次数最少的服务器。
  • WORKLOAD 指定连接请求将定向到工作负载最低的服务器
如果未设置 POLICY 属性,连接管理器会将连接请求定向到工作负载最低的服务器。
可以为策略值提供相对权重。例如,要将客户机请求定向到等待时间最短且应用失败次数最少(但等待时间比应用失败次数重要 10 倍)的服务器,请使用以下值:
POLICY=10*LATENCY+FAILURE
要使用等待时间和失败策略:
  • 网格必须具有启用复制的表。
  • 必须启用数据质量 (qod) 监视。
USEALIASES 指定连接管理器是否可以将客户机连接请求重定向到 DBSERVERALIASES 配置参数指定的数据库服务器别名。
  • ON 指定连接管理器可以将客户机连接请求定向到 DBSERVERS 属性指定的服务器别名。
  • OFF 指定连接管理器不将客户机连接请求定向到 DBSERVERS 属性指定的服务器别名。
如果未设置 USEALIASES 属性,连接管理器可以将客户机连接请求定向到 DBSERVERS 属性指定的服务器别名。
例如,数据库服务器 srv1 具有别名 srv1_alias1svr1_alias2,并且连接管理器包含以下服务级别协议:
SLA sla1 DBSERVERS=srv1
SLA sla2 DBSERVERS=srv1 \
         USEALIASES=OFF
SLA sla3 DBSERVERS=srv1_alias1
SLA sla4 DBSERVERS=srv1_alias1 \
         USEALIASES=OFF
连接管理器将通过以下方式定向客户机请求:
  • CONNECT TO @sla1 请求可以定向到 srv1srv1_alias1srv1_alias2
  • CONNECT TO @sla2 请求将定向到 srv1
  • CONNECT TO @sla3 请求可以定向到 srv1srv1_alias1srv1_alias2
  • CONNECT TO @sla4 请求将定向到 srv1_alias1
WORKERS 指定分配给 SLA 的工作程序线程数。指定了服务级别协议时,连接管理器将创建 SLA 侦听器进程来拦截客户机连接请求。SLA 侦听器进程可以有一个或多个线程,称为工作程序线程。

如果未设置 WORKERS 属性,将为 SLA 分配 4 个工作程序线程。

表 4. SLA 参数的可选 SQLHOSTS 属性和值。
可选 SQLHOSTS 属性
HOST 指定数据库服务器的主机。将使用 SLA 中的值,而不是 sqlhosts 文件中的值。
  • host_name 指定数据库服务器的主机名或主机别名。
  • ip_address 指定数据库服务器的 TCP/IP 地址。
NETTYPE 指定数据库服务器的网络协议。将使用 SLA 中的值,而不是 sqlhosts 文件中的值。
  • onsoctcp 指定使用 TCP/IP 协议的套接字
  • drsoctcp 指定 GBase 数据服务器客户机的 Distributed Relational Database Architecture™ (DRDA) 连接
  • onsocssl 指定 DRDA 的安全套接字层 (SSL) 协议
SERVICE 指定数据库服务器的端口号或服务名称。将使用 SLA 中的值,而不是 sqlhosts 文件中的值。
  • port_number 指定端口号。
  • service_name 指定服务名称。
SQLHOSTSOPT 指定在 SLA 中所指定的数据库服务器的连接选项。用一对引号将所有连接选项括起。将使用 SLA 中的值,而不是 sqlhosts 文件中的值。
SQLHOSTS 参数
要禁止客户机应用程序访问高可用性集群中的一个或多个数据库服务器时,SQLHOSTS 选项会很有用。
连接管理器可以使用本地计算机或远程计算机上的 sqlhosts 文件条目。
表 5. SQLHOSTS 连接管理器配置参数的值
SQLHOSTS 参数值 描述
LOCAL 连接管理器在 GBASEDBTSQLHOSTS 环境变量指定的本地 sqlhosts 文件中搜索请求的数据库服务器实例。
REMOTE 连接管理器在远程计算机上的 sqlhosts 文件中搜索请求的数据库服务器实例。远程计算机由本地数据库服务器的 GBASEDBTSQLHOSTS 环境变量指定。 远程计算机上的 sqlhosts 文件由远程数据库服务器的 GBASEDBTSQLHOSTS 环境变量指定。
LOCAL+REMOTE(缺省值) 连接管理器依次检查本地 sqlhosts 文件和远程 sqlhosts 文件以查找 GBase 8s 实例。
如果未设置 SQLHOSTS 参数,连接管理器将首先检查本地 sqlhosts 文件以查找 GBase 8s 实例。 如果找不到请求的服务器条目,那么将使用远程服务器上的 DBSERVERNAME 或 DBSERVERALIASES 配置参数。

例如,您有一个 Web 服务器(位于外部网络上)和一个应用程序服务器(位于内部网络上)。 数据库服务器为外部网络连接定义了 TCP/IP port1port2,为内部连接定义了 TCP/IP port3 和 port4。指定 SQLHOSTS local 会使连接管理器只查找连接管理器实例的 sqlhosts 文件中定义的服务器实例。在这种情况下,连接管理器只会将客户机连接请求定向到外部网络上的服务器。

unit_type
连接单元是特定的高可用性服务器配置。connection_unit_name 指定连接管理器识别连接单元所依据的名称。 在连接管理器配置文件中指定组类型和连接单元,以将客户机连接请求定向到相应的数据库服务器。每个名称在配置文件中必须唯一。

在配置文件中指定 CLUSTER 连接单元的名称时,请将与组名相同的名称用于 GBASEDBTSQLHOSTS 文件中的对应集群。

在连接管理器配置文件中指定连接单元名称时,只有 GRID 和 REPLSET 连接单元类型可以使用多字节字符。