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宕机了,重启即可(基本上不存在起不来的情况)

博客讨论了Informix数据库中CM(Connection Manager)在主备切换和客户端请求转发中的角色。作者遇到的问题包括CM实例不可用时的延迟、无法在无数据库实例时执行onstat-gcmsm以及CM进程在数据库宕机后的异常状态。提出的建议是配置两个CM,设置PRIORITY以确保高可用性,并推荐使用PROXY=redirect方式。这种方法旨在保证数据库切换的平滑进行,同时提高连接速度和系统稳定性。
7503

被折叠的 条评论
为什么被折叠?



