配置Informix连接管理器
Connection Manager ONCMSM 及相关的实用程序如 ONPASSWORD 都包含在 IBM Informix Client SDK (CSDK) 开发包中。 Connection Manager 可以安装在数据库应用程序运行的机器上,也可以安装在单独的一台独立于 Informix 高可用集群的机器上,减少管理开销。为了提高性能,一般建议安装在数据库应用程序运行的机器上。
这里将包含CM的CSDK安装于独立的服务器上(CSDK安装步骤不再详述),INFORMIXDIR使用CSDK的安装目录,INFORMIXSERVER使用informix集群的group名
1)创建加密的password密码文件
CM需要读这个密码文件,并通过这个密码连接到各服务器上
Password密码文件的格式为
ServerName AlternateServer USER PASSWORD
每一行表示一个Informix实例:
ServerName指INFORMIXSERVER,需使用TCP/IP方式的服务
AlternateServer指在无法连接上ServerName时的备用连接(无备用连接可设置跟ServerName一致)
USER指存在于ServerName所指定的服务器上的已存在的用户名
PASSWORD指USER使用的密码
此次示例如下:
ids1_online_net ids1 informix informix
ids2_online_net ids2 informix informix
idssds_online_net idssds informix informix
idsrss_online_net idsrss informix Informix
保存为passwd.txt文件,然后使用onpassword实用工具加密成${INFORMIXDIR}/etc/passwd_file 密码文件供CM使用
[ informix@cmserver ~] onpasswork -k SecretKey -e ./passwd.txt
2)创建CM配置文件
CM配置文件默认为${INFORMIXDIR}/etc/cmsm.cfg,可通过复制例子文件cmsm.cfg.sample创建cmsm.cfg,cmsm.cfg.sample内容如下:
# Connection Manager name(CM名称)
NAME sample
# re-route Informix clients to the primary for transaction processing (SLA策略)
SLA sqtp=PRI
# re-route Informix clients to any secondary node for reporting (SLA策略)
SLA sqrt=(SDS+HDR+RSS)
# re-route IBM Data Server clients that use DRDA to the primary (SLA策略)
SLA drtp=PRI
# re-route IBM Data Server clients that use DRDA to any secondary node (SLA策略)
SLA drrt=(SDS+HDR+RSS)
# Failover Configuration (集群故障接管策略)
FOC SDS+HDR+RSS,0
# worker threads for each SLA listener, default is 8 (SLA线程数)
SLA_WORKERS 16
# Connection Manager message file (CM日志)
LOGFILE /usr/informix/tmp/cm.log
示例使用cmsm.cfg如下:
NAME ids1170
SLA oltp=PRI
SLA payroll=HDR+RSS+PRI
SLA report=SDS+HDR+RSS
DEBUG 1
SLA_WORKERS 4
LOGFILE /opt/informix/log/cmsm.log
FOC (SDS+HDR)+RSS,10
注:SLA(Service Level Agreement)中的参数定义
PRI 或者primary :集群中的主服务器
SDS :集群中的SDS服务器
HDR :集群中的HDR服务器
RSS :集群中的RSS服务器
+ :表示使用负载均衡
注:FOC(failover configuration)中的参数定义
+ :表示顺序接管
() :表示同级别,仅有括号内的都失败,才由下一顺序接管
timeout_value最后的数字为等待主服务器响应的时间,单位是秒。
3)修改SQLHOSTS配置文件
所有informix集群的实例中的sqlhosts文件均应包含所有实例的信息;而CM中的SQLHOSTS中除包含所有实例中的信息外,还包含SLA策略
示例CM使用的sqlhosts如下:
所有Informix集群的实例都在同一个group中(所有的集群实例中都应包含INFORMIXSERVER这部分内容),CM中还包含CM SLA定义的策略
### INFORMIXSERVER
ids1170 group - - i=10
ids1_online_net onsoctcp rhel56 11801 g=ids1170
ids2_online_net onsoctcp rhel57 11802 g=ids1170
idssds_online_net onsoctcp rhel58 11803 g=ids1170
idsrss_online_net onsoctcp rhel59 11804 g=ids1170
# for Connection Manager's SLA defines
oltp onsoctcp rhel60 11860
report onsoctcp rhel60 11861
payroll onsoctcp rhel60 11862
4)使用oncmsm实用工具启动CM
由于示例中仅定义了一个CM name,故可直接使用oncmsm启动
[Informix@cmserver ~] oncmsm
然后可通过cmsm.log查看cmsm的运行情况。
在接入了连接管理器的服务器上可以使用onstat -g cmsm查看CM运行状态
[informix@rhel55 ~] onstat -g cmsm
IBM Informix Dynamic Server Version 11.70.FC1 -- On-Line (Prim) -- Up 03:10:19 -- 173780 Kbytes
Connection Manager Name: ids1170
Hostname: rhel55
SLA Connections Service/Protocol Rule
oltp 0 11860/onsoctcp PRI
payroll 0 11862/onsoctcp (HDR+RSS)+PRI
report 0 11861/onsoctcp SDS+HDR+RSS
Failover Configuration:
Connection Manager name Rule Timeout State
ids1170
(SDS+HDR)+RSS 10 Active Arbitrator, Primary is up
CM管理故障接管
FOC (SDS+HDR)+RSS,10
第一层接管,在主服务器故障时,(SDS+HDR)启用接管。
SDS备机成为主服务器,原HDR备机重定向为当前主服务器HDR备机,原RSS备机重定向为当前主服务RSS备机
第二层接管,在主服务器故障(原SDS)时,(SDS+HDR)启用接管,此时由HDR备机接管。
HDR备机接管成为主服务器,原RSS备机重定向成为当前主服务RSS备机
第三层接管,在主服务器故障(原HDR)时,RSS启用接管,此时由RSS备机接管。
RSS备机接管成为主用服务器,由于此时没有别的备用服务器,仅有主服务器,不再有接管。
注:当集群存在多个RSS备机时,RSS其它备机仍可成为当前主服务器的RSS备机,直至最后一个RSS备机成为主用服务器。