以下示例显示了如何针对高可用性集群、复制集、网格和服务器集来配置各种服务级别协议 (SLA)。
在以下示例中,可以使用服务器别名或通用服务器类型。例如,RSS 指定连接管理器对集群中的每个 RS 辅助服务器进行评估,以确定客户机应用程序请求的最佳候选项。您还可以指定数据库服务器的网络别名,例如 sds1 或 rss1。
以下配置文件示例显示了各种选项:
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
}
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。
要启用服务器间的负载均衡,请用圆括号将服务器类型列表括起。
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 辅助服务器。
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
}
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 秒内未接收到来自辅助服务器的任何事件,那么连接管理器将与该辅助服务器断开连接。
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}
}
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}
}
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
}
#dbservername nettype hostname servicename options
ids1 onsoctcp apollo 9600
ids2 onsoctcp apollo 9600
ids3 onsoctcp apollo 9600
#dbservername nettype hostname servicename options
ids1 onsoctcp apollo 9610
ids2 onsoctcp apollo 9610
ids3 onsoctcp apollo 9610