Informix服务器夜间定时重启偶发启动失败排查求助
Informix夜间自动启动偶发失败问题排查
问题描述
- 服务器采用遗留架构,每日夜间自动重启,多数情况下数据库启动正常,但偶发启动失败
- 启动失败时,日志仅输出至以下内容:
... Thu Dec 15 00:36:17 2022 00:36:17 成功添加页大小为2K的缓冲池。 00:36:17 事件告警已启用。ALARMPROG = '/opt/IBM/informix/12.10/etc/alarmprogram.sh' 00:36:17 从模块 <> 启动语言 <c> 00:36:17 加载模块 <CNULL> 00:36:17 从模块 <> 启动语言 <builtin> 00:36:17 加载模块 <BUILTINNULL> 00:36:22 代理文件/etc/informix/allowed.surrogates中的条目已加载至代理缓存。 00:36:22 可信主机缓存构建成功:/etc/hosts.equiv。 00:36:22 DR:DRAUTO为0(关闭) 00:36:22 DR:ENCRYPT_HDR为0(HDR加密已禁用) 00:36:22 事件通知工具epoll已启用。 00:36:23 IBM Informix动态服务器版本12.10.FC2WE 软件序列号AAA#B000000 00:36:23 (5) 连接被拒绝 - sqlexec不允许调用 00:36:23 (6) 连接被拒绝 - sqlexec不允许调用
- 手动通过SSH登录服务器后,可正常启动数据库服务
可能的原因分析
- 启动环境变量不一致:夜间自动重启的脚本(如crontab、系统服务脚本)未正确配置
INFORMIXDIR、INFORMIXSERVER、ONCONFIG等Informix依赖的关键环境变量,导致sqlexec进程初始化异常,触发连接拒绝。而手动登录时用户环境变量已正确加载,可正常启动。 - 资源竞争或权限问题:夜间重启时段,有其他定时任务(如备份、监控)占用了Informix所需的文件、端口或磁盘资源;或Informix相关目录(如
$INFORMIXDIR/tmp、数据存储目录)权限被意外修改,自动启动进程无访问权限,手动启动时用户权限足够。 - 进程初始化超时:夜间服务器负载较高,sqlexec进程初始化耗时超出内部阈值,触发连接拒绝逻辑。手动启动时服务器负载降低,进程可顺利完成初始化。
- 版本已知bug:当前使用的12.10.FC2WE版本存在启动阶段的偶发bug,在特定负载或环境下会导致sqlexec进程无法正常接收调用,可查阅IBM官方补丁列表确认是否有对应修复。
- 系统资源不足:夜间重启时服务器内存、CPU或磁盘IO资源耗尽,Informix无法为sqlexec进程分配足够资源,导致初始化失败;手动启动时资源已释放,可正常启动。
内容的提问来源于stack exchange,提问作者Ondřej Žižka
相关产品推荐
相关产品推荐

