连接管理器使用中需要注意的几个地方

Informix不能提供SCAN IP的功能,而是使用了两个CM的方式来完成数据库的主备切换和客户端请求的转发工作。

通常的做法是配置和启动两个或多个CM,放到一个cm_group中,通过在URL中使用SQLH_TYPE、SQLH_FILE来使用两个CM。

但是我在CM的使用中遇到了几个问题:

1、如果cm_group成员中,前面的一个CM实例不可用,应用建立连接的时间就会特别长,有一个反复确认第一个CM不可用的的时间;

2、虽然可以在不安装数据库实例的情况下,安装和启动CM是没有问题的,但是无法执行 onstat -g cmsm

3、如果数据库宕机了,CM进程可能还在,且出现了一次数据库端口被占用的情况,导致数据库无法bind端口和启动

 

综合考量这个稀里糊涂的CM,我的想法或许比较激进,但是仍然建议如下:

1、配置和启动两个CM;

2、PRIORITY的值一定要大于100;

3、应用程序我建议只连接一个CM实例,就类似于连接单机数据库实例一样;

4、建议考虑PROXY=redirect的方式

      类似的好处是,两个CM会保证数据库的切换;

      PRIORITY的值较大是为了保证和控制两个CM的优先级不变;

      应用程序只连接一个CM,连接速度可以保证,如果真的CM宕机了,重启即可(基本上不存在起不来的情况)

上一篇:集群镜像:实现高效的分布式应用交付


下一篇:我的数据访问函数库的源代码(二)—— SQL语句部分