IBM® Informix® 12.10

连接管理器配置文件中服务级别协议的示例

以下示例显示了如何针对高可用性集群、复制集、网格和服务器集来配置各种服务级别协议 (SLA)。

在以下示例中,可以使用服务器别名或通用服务器类型。例如,RSS 指定连接管理器对集群中的每个 RS 辅助服务器进行评估,以确定客户机应用程序请求的最佳候选项。您还可以指定数据库服务器的网络别名,例如 sds1rss1

以下配置文件示例显示了各种选项:

示例 1:从服务级别协议进行连接请求重定向

NAME cm1
LOG       1
LOGFILE ${INFORMIXDIR}/tmp/cm1.log

CLUSTER east
{
   INFORMIXSERVER ids_e1,ids_e2
   SLA secondaryNodes DBSERVERS=SDS,HDR,PRI
   FOC ORDER=ENABLED \
       TIMEOUT=5 \
       RETRY=1
   CMALARMPROGRAM ${INFORMIXDIR}/etc/CMALARMPROGRAM.sh
}
连接管理器 cm1 按如下所示定向 CONNECT TO @secondaryNodes 连接请求:
  1. 连接到任何可用 SD 辅助服务器。
  2. 如果 SD 辅助服务器不可用,那么连接到 HDR 辅助服务器。
  3. 如果 HDR 辅助服务器不可用,那么连接到主服务器。

示例 2:指定多个服务级别协议

NAME      cm2
LOG       1
LOGFILE   ${INFORMIXDIR}/tmp/cm2.log

CLUSTER west
{
   INFORMIXSERVER  ids_w1,ids_w2
   SLA  oltp    DBSERVERS=primary
   SLA report DBSERVERS=HDR,SDS
   FOC ORDER=ENABLED \
       TIMEOUT=5 \
       RETRY=2
   CMALARMPROGRAM ${INFORMIXDIR}/etc/CMALARMPROGRAM.sh
}

此示例针对高可用性集群配置了连接管理器,并定义了两个 SLA。

配置文件主体定义了两个 SLA、故障转移参数以及故障转移处理失败时要调用的程序:
  • CONNECT TO @oltp 连接请求将定向到主服务器
  • CONNECT TO @report 连接请求将定向到 HDR 辅助服务器。如果 HDR 辅助服务器不可用,CONNECT TO @report 连接请求将定向到任何可用的 SD 辅助服务器。

示例 3:服务级别协议中的负载均衡

要启用服务器间的负载均衡,请用圆括号将服务器类型列表括起。

NAME cm3
LOG       1
LOGFILE ${INFORMIXDIR}/tmp/cm3.log

CLUSTER south
{
   INFORMIXSERVER ids_s1,ids_s2
   SLA secondary DBSERVERS=(SDS,HDR)
   FOC ORDER=ENABLED \
       TIMEOUT=5 \
       RETRY=1
   CMALARMPROGRAM ${INFORMIXDIR}/etc/CMALARMPROGRAM.sh
}

连接管理器 cm3 将客户机 CONNECT TO @secondary 连接请求定向到 CPU 利用率最低的 SD 或 HDR 辅助服务器。

示例 4:服务级别协议中的代理和重定向方式

在重定向方式下,连接管理器将指定数据库服务器的 IP 地址和端口号发送到客户机应用程序。 然后客户机应用程序使用此 IP 地址和端口号来连接到数据库服务器。在代理方式下,客户机请求将通过连接管理器进行路由。如果未指定 SLA 方式,重定向方式是缺省方式。
NAME cm4
LOG       1
LOGFILE ${INFORMIXDIR}/tmp/cm4.log

CLUSTER north
{
   INFORMIXSERVER ids_n1,ids_n2
   SLA sla1 DBSERVERS=alpha \
            MODE=REDIRECT
   SLA sla2 DBSERVERS=beta \
            MODE=PROXY
   SLA sla3 DBSERVERS=SDS \
            MODE=REDIRECT
   FOC ORDER=ENABLED \
       TIMEOUT=5 \
       RETRY=1
   CMALARMPROGRAM ${INFORMIXDIR}/etc/CMALARMPROGRAM.sh
}
对于此示例:
  • 主服务器的别名为 alpha
  • HDR 辅助服务器的别名为 beta
  • 有两个 SD 辅助服务器,别名为 gamma1gamma2
连接管理器 cm4 按如下所示定向客户机连接请求:
  • CONNECT TO @sla1 连接请求将定向到主服务器 (alpha)。
  • CONNECT TO @sla2 连接请求将通过连接管理器(充当代理服务器)定向到 HDR 辅助服务器 (beta)。
  • CONNECT TO @sla3 连接请求将定向到可用资源最多的 SD 辅助服务器。

示例 5:主服务器、辅助服务器和连接管理器的超时

NAME cm5
LOG       1
LOGFILE ${INFORMIXDIR}/tmp/cm5.log
CM_TIMEOUT 300
EVENT_TIMEOUT 45
SECONDARY_EVENT_TIMEOUT 50

CLUSTER southwest
{
   INFORMIXSERVER ids_sw1,ids_sw2
   SLA  oltp    DBSERVERS=primary
            MODE=PROXY
   SLA report DBSERVERS=SDS,RSS,HDR
   SLA primary DBSERVERS=primary
   SLA secondary DBSERVERS=(SDS,RSS,HDR)
   FOC ORDER=ENABLED \
       RETRY=1
   CMALARMPROGRAM ${INFORMIXDIR}/etc/CMALARMPROGRAM.sh
}

如果数据库服务器在 300 秒内未接收到来自连接管理器的任何事件,该数据库服务器将假定连接管理器未运行,而下一个可用的连接管理器将成为故障转移仲裁器。

如果连接管理器在 45 秒内未接收到来自主服务器的任何事件,那么连接管理器将开始故障转移处理。如果为某个连接单元定义了 FOC 参数的 TIMEOUT 属性,那么该参数的值会与 EVENT_TIMEOUT 参数的值相加,所得结果作为该连接单元的故障转移处理开始之前要等待的总时间。

如果连接管理器在 50 秒内未接收到来自辅助服务器的任何事件,那么连接管理器将与该辅助服务器断开连接。

示例 6:服务级别协议中的宏和工作负载均衡

可以为服务器组定义宏。可以在宏内或 SLA 内定义负载均衡。
NAME cm6
MACRO NY=(ny1,ny2,ny3)
MACRO CA=(ca1,ca2,ca3)
LOG       1
LOGFILE ${INFORMIXDIR}/tmp/cm6.log

REPLSET erset
{
   INFORMIXSERVER g_er1,g_er2
   SLA repl1_any DBSERVERS=ANY
   SLA repl1_ca DBSERVERS=${CA}
   SLA repl1_ny DBSERVERS=${NY}
}
在此示例中,定义了两个宏:
  • NY,由 ny1ny2ny3 组成,并使用工作负载均衡。
  • CA,由 ca1ca2ca3 组成,并使用工作负载均衡。
连接管理器 cm6 按如下所示定向客户机连接请求:
  • CONNECT TO @repl1_any 连接请求将定向到任何可用的服务器。
  • CONNECT TO @repl1_ca 连接请求将定向到 ca1ca2ca3 中 CPU 利用率最低者。
  • CONNECT TO @repl1_ny 连接请求将定向到 ny1ny2ny3 中 CPU 利用率最低者。

示例 7:服务级别协议中的重定向策略

NAME cm7
MACRO SF=(sf1,sf2,sf3)
MACRO LA=(la1,la2,la3)
LOG       1
LOGFILE ${INFORMIXDIR}/tmp/cm7.log

GRID grid1
{
   INFORMIXSERVER node1,node2,node3
   SLA grid1_any DBSERVERS=ANY
                 POLICY=LATENCY
   SLA grid1_avail DBSERVERS=${SF},${LA}
}
在此示例中,定义了两个宏:
  • SF,由 sf1sf2sf3 组成,并使用工作负载均衡。
  • LA,由 la1la2la3 组成,并使用工作负载均衡。
连接管理器 cm7 按如下所示定向客户机连接请求:
  • CONNECT TO @grid1_any 连接请求可以定向到任何可用的服务器。连接请求将定向到等待时间最短的服务器。
  • CONNECT TO @grid1_avail 连接请求将定向到 sf1sf2sf3 中 CPU 利用率最低者。如果 sf1sf2sf3 不可用,连接请求将发送到 la1la2la3 中 CPU 利用率最低者。

示例 8:服务级别协议中的 sqlhosts 连接信息

NAME cm8
LOG       1
LOGFILE ${INFORMIXDIR}/tmp/cm8.log

SERVERSET ss
{
   INFORMIXSERVER ids1,ids2,ids3
   SLA ssavail DBSERVERS=ids1,ids2,ids3 \
               HOST=apollo \
               SERVICE=9600 \
               NETTYPE=onsoctcp
   SLA ssany DBSERVERS=(ids1,ids2,ids3) \
             HOST=apollo \
             SERVICE=9610 \
             NETTYPE=onsoctcp
}
此示例显示了支持连接管理器所支持的服务器集的示例配置。连接管理器使用 HOST、SERVICE 和 NETTYPE 属性的值,而不是服务器的 sqlhosts 文件中的值。
  • 对于 ssavail SLA,ids1ids2ids3 具有以下 sqlhosts 信息:
    #dbservername    nettype       hostname      servicename      options
    ids1            onsoctcp   apollo     9600
    ids2            onsoctcp   apollo     9600
    ids3            onsoctcp   apollo     9600
  • 对于 ssany SLA,ids1ids2ids3 具有以下 sqlhosts 信息:
    #dbservername    nettype       hostname      servicename      options
    ids1            onsoctcp   apollo     9610
    ids2            onsoctcp   apollo     9610
    ids3            onsoctcp   apollo     9610
连接管理器 cm8 按如下所示定向客户机连接请求:
  • CONNECT TO @ssavail 连接请求将定向到 ids1。如果 ids1 不可用,CONNECT TO @ssavail 连接请求将发送到 ids2。如果 ids2 不可用,CONNECT TO @ssavail 连接请求将发送到 ids3
  • CONNECT TO @ssany 连接请求将定向到 ids1ids2ids3 中 CPU 利用率最低者。


发送反馈 | 示例交流 | 故障诊断

要查找 PDF,请参阅 IBM Informix 12.10 系列产品的出版物
有关发行说明、文档说明和/或机器说明,请参阅发行说明页。
时间戳记 发行日期:2013 年 3 月