Ubuntu 上搭建 Informix 集群的步骤
一 规划与准备
- 明确集群形态:常见为共享磁盘集群(SDS)、高可用集群(HDR)、企业复制(ER)或共享内存连接(RSS)。不同形态对网络、存储与参数要求不同,建议先选定一种并在所有节点保持一致。
- 节点与环境:准备2–N 台 Ubuntu 服务器(建议 20.04/22.04 LTS),确保主机名唯一、/etc/hosts 解析一致、NTP/Chrony 时间同步、SSH 免密互通(root 与 informix 用户均建议配置)、SELinux/AppArmor 放行、防火墙开放相应端口(如 9088/9089 等,具体以你的 sqlhosts 配置为准)。
- 共享存储(SDS/HDR 常用):准备共享磁盘/阵列或集群文件系统(如 GPFS、GFS2、OCFS2 等),并保证所有集群节点对共享卷有一致挂载点与权限。
- 软件介质:在各节点准备相同版本与 Fixpack 的 IBM Informix 安装介质(仅支持 Linux x86-64 平台),并统一安装路径(如 /opt/IBM/informix)。
二 安装与基础配置(各节点执行)
- 创建用户与目录(示例 UID/GID 为 3000):
- sudo groupadd -g 3000 informix
- sudo useradd -u 3000 -g 3000 -d /opt/IBM/informix -m informix
- sudo passwd informix
- sudo chown -R informix:informix /opt/IBM/informix
- 配置环境变量(以 informix 用户执行,写入 ~/.bash_profile 或 /etc/profile.d/informix.sh):
- export INFORMIXDIR=/opt/IBM/informix
- export INFORMIXSERVER=ol_informix(示例名,集群内唯一)
- export ONCONFIG=onconfig.ol_informix
- export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts.ol_informix
- export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$LD_LIBRARY_PATH
- export PATH=$INFORMIXDIR/bin:$PATH
- 安装 Informix(以 root 或具有安装权限的用户执行安装脚本,示例):
- 上传并解压介质至临时目录,进入解压目录后执行:./ids_install(或安装包提供的脚本),按向导完成安装,安装路径保持为 /opt/IBM/informix。
- 初始化实例(首次启动):
- oninit -ivy(仅首次;后续使用 oninit 或 onmode 控制)
- 验证:onstat -;检查 online.log 无报错,确认监听端口与服务正常。
三 集群类型与关键配置
- 共享磁盘集群 SDS(示例)
- 在所有节点安装相同版本 Informix,使用同一共享存储卷作为数据设备(如 /dev/sdb 或集群文件系统路径)。
- 主节点初始化后,在从节点编辑 $INFORMIXDIR/etc/onconfig.ol_informix,设置:
- SDS_ENABLE 1
- SDS_TEMPDBS tempdbs(示例名,需预先创建)
- SDS_PAGING /dev/sdX 或共享路径(确保各节点可见且权限一致)
- 从节点执行:oninit -v(不覆盖 rootdbs 初始化),加入集群;使用 onstat -g sds 查看 SDS 状态。
- 高可用集群 HDR(示例)
- 主节点:常规初始化(oninit -ivy),确保 SERVERNUM 唯一,NETTYPE 启用 onsoctcp,并在 /etc/services 与 $INFORMIXSQLHOSTS 中配置服务端口(如 9088/tcp)。
- 备节点:安装相同版本与路径,配置唯一 SERVERNUM,在 onconfig 中设置:
- HDR_ENABLE 1
- HDR_SECONDARY primary_hostname(主节点主机名或 IP)
- 备节点执行:oninit -v 建立 HDR 备机;使用 onstat -g hdr 查看 HDR 状态;主备切换可用 onmode -ky / onmode -d primary 等命令。
- 企业复制 ER(示例)
- 各节点安装相同版本与路径,配置唯一 SERVERNUM 与网络连通。
- 在 $INFORMIXSQLHOSTS 中为各节点配置 ER 连接别名(常用 drsoctcp 协议),在 onconfig 中启用复制相关参数(如 ER_ENABLE、ER_NUM_GROUPS 等)。
- 使用 cdr 命令创建复制域/表、启动复制:cdr start replication;用 cdr check 等命令校验。
- 共享内存连接 RSS(示例)
- 各节点安装相同版本与路径,配置唯一 SERVERNUM 与网络连通。
- 在 $INFORMIXSQLHOSTS 中为同级 RSS 节点配置 onsoctcp 别名;在 onconfig 中设置 RSS 相关参数(如 RSS_ENABLE、RSS_HOSTS 等),使用 onstat -g rss 查看状态。
- 公共网络与文件配置要点
- /etc/services:为实例添加端口(示例:informix_svc 9088/tcp)。
- $INFORMIXSQLHOSTS(示例):
- primary onsoctcp 192.168.10.11 informix_svc
- secondary onsoctcp 192.168.10.12 informix_svc
- dr_secondary drsoctcp 192.168.10.12 informix_svc
- 确保 rootdbs 等关键文件权限为 660,避免因权限导致实例异常。
四 验证与运维
- 集群状态检查
- onstat -:查看实例状态(On-Line 为正常)
- onstat -g sds / -g hdr / -g rss / cdr check:分别查看 SDS/HDR/RSS/ER 状态与复制一致性
- 服务与端口
- ss -lntp | grep 9088;netstat -apn | grep oninit;确保防火墙放行对应端口
- 切换与回切演练
- HDR:主节点 onmode -ky 切换至备机;备机 onmode -d primary 升主;验证业务与复制链路恢复
- 日志与告警
- 重点查看 $INFORMIXDIR/logs/online.log 与 $INFORMIXDIR/tmp/online.log,定位启动、网络、共享存储与复制异常
五 常见问题与注意事项
- 节点时间不同步会导致复制/HDR 异常,务必启用 NTP/Chrony 并校准到同一时间源。
- 共享存储需保证一致的设备路径/挂载点与权限,否则 SDS/HDR 节点无法加入或切换失败。
- 防火墙/安全组需放行 onsoctcp/drsoctcp 所用端口(如 9088/9089),并确保 /etc/hosts 解析正确。
- 实例参数(如 SERVERNUM、NETTYPE、ROOTPATH、SDS/HDR/ER/RSS 相关项)在各节点需一致或按角色正确设置,避免冲突。
- 首次初始化使用 oninit -ivy,后续使用 oninit/onmode;任何变更建议先备份 onconfig 与关键数据空间。