温馨提示×

如何在Debian上部署Informix集群

小樊
40
2025-11-16 08:00:07
栏目: 智能运维

在 Debian 上部署 Informix 集群的实操指南

一 架构与准备

  • 架构选型建议:在 Linux 上,Informix 常见的高可用/集群形态包括 HDR(High Availability Data Replication)SDS(Shared Disk Secondary)Connection Manager(CM) 配合实现连接路由与故障切换。生产上常用“主库 + HDR 备库 + CM 路由”的组合,既保证数据冗余又提供统一接入。
  • 节点规划:至少准备 2–3 台 Debian 服务器(主库、HDR 备库、可选 SDS/仲裁/应用接入节点),每台配置固定 主机名内网 IP,并保证节点间 互通
  • 系统与软件:
    • 建议使用 Debian 11/12,内核与 glibc 版本满足目标 Informix 版本要求;创建 informix 用户与组,安装目录如 /opt/informix
    • 安装 IBM Informix Server 与(可选)Client SDK(用于 ODBC/JDBC/ESQL 等客户端访问)。
    • 基础环境:配置 NTP/Chrony 时间同步/etc/hosts 解析、必要的 内核参数与资源限制(如共享内存、文件句柄)、以及 磁盘与网络(低时延、稳定链路)。

二 安装与实例初始化

  • 安装 Server 与 Client SDK(两台以上一致版本与路径):
    • 以 root 创建用户与目录:groupadd -r informix && useradd -r -g informix -d /opt/informix -m informix
    • 上传并解压安装介质,切换至 informix 用户执行安装脚本,按向导完成;设置环境变量(示例):
      • INFORMIXDIR=/opt/informix
      • PATH=$INFORMIXDIR/bin:$PATH
      • INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
    • 安装 Client SDK(应用/运维机或集群节点):解压并执行 ./installclientsdk,按需选择 ODBC/ESQL/C 等组件。
  • 初始化实例(以 onconfig 模板创建并修改关键参数):
    • 复制模板:cp $INFORMIXDIR/etc/onconfig.std $INFORMIXDIR/etc/onconfig.<your_servername>
    • 关键参数示例(按实际调整):
      • ROOTNAME rootdbs; ROOTPATH /opt/informix/storage/rootdbs; ROOTOFFSET 0
      • DBSERVERNAME <your_servername>(如:ifx_primary / ifx_hdr)
      • NETTYPE soctcp,1,50,NETSQLHOSTS <your_servername> onsoctcp <host> <port>
      • SHMADD 128000; SHMTOTAL 0; SHMVIRTSIZE 128000
      • LOGFILES 6; LOGSIZE 10000; LOGSMAX 10
    • 初始化与首次启动:
      • oninit -ivy(交互式初始化;生产可用 oninit -v
      • 验证:onstat - 应显示 On-Line 状态。

三 配置高可用 HDR 与 SDS

  • 准备备库实例:在备库节点安装同版本软件与实例,初始化为 标准/非 HDR 状态(与主库版本、空间布局一致),暂不启动到 On-Line。
  • 建立 HDR 关系(在主库执行,再在备库执行反向命令):
    • 主库:onmode -d primary <ifx_hdr>(将目标备库服务器名填入)
    • 备库:onmode -d secondary <ifx_primary>
    • 观察同步:onstat -g drionstat -g hdr,待 HDR 状态为 Active/Connected
  • 可选 SDS(共享存储备库,需 SAN/NAS 或多路径):
    • 备库使用与主库一致的 rootdbs 路径(共享块设备),初始化实例后执行:onmode -d secondary <ifx_primary>
    • 使用 multipath 等确保存储多路径与高可用。
  • 验证与回切演练:
    • 主备切换:onmode -ky(主库安全下线),备库 onmode -d primary <ifx_primary> 升主;反向演练确认 数据一致性与切换时延

四 配置 Connection Manager 实现统一接入与故障转移

  • 配置 sqlhosts(所有节点一致,示例):
    • 服务器条目:
      • ifx_primary onsoctcp host1 9088
      • ifx_hdr onsoctcp host2 9088
    • 集群组条目(CM 使用):
      • g1 group - - i10
      • g1 ifx_primary onsoctcp host1 9088
      • g1 ifx_hdr onsoctcp host2 9088
  • 配置 CM(Connection Manager):
    • 创建配置文件 $INFORMIXDIR/etc/cmconfig
      NAME cm1
      LOG 1
      LOGFILE $INFORMIXDIR/tmp/cmlog
      CLUSTER g1 {
          INFORMIXSERVER ifx_primary
          SLA oltp     DBSERVERS primary
          SLA report   DBSERVERS hdr,primary
          FOC ORDER ifx_hdr,ifx_primary
          PRIORITY 1
          TIMEOUT 10
          RETRY 2
      }
      
    • 设置环境变量:INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts(或指向包含集群组的文件)
    • 启动 CM:oncmsm -c $INFORMIXDIR/etc/cmconfig
    • 验证:oncmsm -m 查看成员状态,onstat -g cm 查看连接管理信息。应用仅连接 g1 组地址,由 CM 自动路由与故障切换。

五 验证与运维要点

  • 健康检查与验证:
    • 实例状态:onstat -
    • HDR/SDS:onstat -g drionstat -g hdronstat -g sds
    • 连接路由:onstat -g cmoncmsm -m
    • 业务验证:通过 dbaccess 或应用连接 g1 执行查询与事务,模拟主备切换后验证 会话保持与数据一致性
  • 客户端与驱动:
    • 应用/报表服务器安装 Client SDK,配置 ODBC/ESQL/JDBC DSN,指向 g1 组地址;确保字符集与语言环境一致。
  • 监控与日常维护:
    • 使用 onstat、oncheck、onmode 进行监控、检查与切换;结合 Zabbix 等第三方工具做容量与性能趋势分析。
  • 安全与网络建议:
    • 仅开放 9088 等必要端口,使用 TLS/SSL 加密传输(如配置 TLS),限制管理口访问;生产环境不建议长期关闭防火墙,按需放行。
  • 风险提示:
    • 生产变更前务必 完整备份演练切换;HDR/SDS 切换可能导致 会话中断短暂只读;共享存储需验证 多路径与故障切换 能力。

0