温馨提示×

ubuntu informix迁移怎样操作

小樊
40
2025-12-23 00:17:47
栏目: 智能运维

Ubuntu 上 Informix 迁移实操指南

一 迁移方案选择

  • 逻辑迁移:使用 dbexport/dbimport 导出为文本(含建库/建表/数据脚本),跨小版本、跨平台通用,便于审计与改造,适合大多数场景。
  • 物理迁移:使用 ontape/onbar 进行二进制备份与恢复,停机时间短,要求版本与目标环境高度一致(同大版本、同平台更佳)。
  • 混合方案:用 dbschema 先迁移对象定义,再用 HPL/dbload 或外部 ETL 加载数据,适合做结构改造与清洗。
  • 迁移前务必评估源/目标 Informix 版本兼容、字符集、存储路径、网络与权限,并制定回滚与验证计划。

二 标准流程 逻辑迁移 dbexport dbimport

  • 源端准备
    1. informix 用户执行:
      dbexport -o /informix_export/stores7 stores7
      如需同时导出存储过程/触发器/授权等,可配合 dbschema -d stores7 -f all -p all -r all 生成对象脚本。
    2. 备份配置与网络:
      • 配置文件:$INFORMIXDIR/etc/onconfig$INFORMIXDIR/etc/sqlhosts
      • 环境变量:INFORMIXSERVER、DBSERVERNAME、DB_LOCALE、CLIENT_LOCALE
    3. 校验导出目录(如 stores7.exp)与文件权限。
  • 目标端部署
    1. 安装同版本 Informix,创建 informix 用户与目录,设置环境变量(示例):
      INFORMIXDIR=/opt/IBM/informix
      INFORMIXSERVER=pdc
      ONCONFIG=onconfig.std
      DB_LOCALE=zh_cn.gb
      CLIENT_LOCALE=zh_cn.gb
      PATH=$INFORMIXDIR/bin:$PATH
    2. 编辑 $INFORMIXDIR/etc/sqlhosts/etc/services(如添加端口 1526/tcp),确保监听可达。
    3. 初始化实例(首次):oninit -ivy;仅启动:oninit。
  • 目标端导入
    1. stores7.exp 复制到目标(如 /informix_import/)。
    2. 如需自定义表空间,先创建:
      onspaces -c -d <tbsp_name> -p <path.dbf> -o <offset_kb> -s <size_kb>
    3. 导入:
      dbimport stores7 -i /informix_import -d <tbsp_name>
      若导出时用了 -ss,导入脚本中已含存储参数,可按需调整。
    4. 导入后建议做物理日志备份:
      ontape -s -B stores7
  • 验证
    1. 连接校验:dbaccess stores7 -
    2. 抽样查询与计数对比(行数、主外键、唯一性、空值约束)。
    3. 应用回归测试与性能基线对比。

三 标准流程 物理迁移 ontape onbar

  • 源端备份
    • 零级备份:ontape -s -L 0
    • 归档日志:按需执行 ontape -a(确保日志连续)。
  • 目标端恢复
    1. 安装同版本 Informix 并初始化实例(oninit -ivy)。
    2. 恢复:ontape -r(按提示选择恢复级别与归档路径)。
    3. 恢复后校验:onstat - 检查数据库状态与日志模式。
  • 适用要点
    • 停机窗口可控、版本/平台一致时优先;跨平台或版本差异较大时不建议使用。

四 关键配置与常见问题

  • 字符集与语言环境
    • 保持 DB_LOCALE/CLIENT_LOCALE 与源端一致(如 zh_cn.gbEN_US.819),避免乱码与比较规则差异。
  • 监听与连接
    • 核对 sqlhosts 协议(onsoctcp/ontlitcp)、主机、服务名;/etc/services 端口(常见 1526/tcp)未被占用。
  • 表空间与路径
    • 若目标磁盘布局不同,导入前用 onspaces 预建表空间,并在 dbimport -d 指定;导出目录名与脚本中的数据库名需一致或手动修正。
  • 日志与一致性
    • 导入后执行 ontape -s -B 启用/补齐物理日志,确保可前滚恢复。
  • 常见报错速查
    • “INFORMIXSERVER 与 DBSERVERNAME 不匹配”:核对环境变量、onconfigDBSERVERNAMEsqlhosts 条目。
    • “共享内存初始化失败”:检查 online.log,确认 rootdbs 存在且权限为 660,必要时 touch 并 chmod。
    • “onmonitor 终端类型未知”:设置 TERMINFOTERMCAP 指向 $INFORMIXDIR/etc

五 迁移后验证与回滚

  • 数据一致性
    • 对象计数、主键/唯一约束、外键、检查约束、触发器执行结果对比。
    • 抽样业务查询与关键报表结果比对。
  • 性能与稳定性
    • 执行基准查询/批处理,观察 onstat -g perf 与逻辑/物理日志写入情况,必要时调优缓冲池与日志参数。
  • 应用与运维
    • 更新应用连接串(主机、端口、服务名),验证连接池与超时设置。
    • 建立监控告警与备份策略(如每日增量、每周全备)。
  • 回滚预案
    • 保留源端备份与最近一次可用 ontape 磁带/目录;逻辑迁移保留 dbexport 产物;出现异常按窗口快速回切。

0