温馨提示×

Ubuntu Informix如何扩容

小樊
35
2026-07-06 10:05:30
栏目: 智能运维

Ubuntu 上给 IBM Informix 数据库扩容,通常指的是 增加数据库空间(dbspace),而不是操作系统层面的磁盘扩容。下面按最常见场景给你一个完整、可操作的说明。


一、Informix 扩容的核心概念

Informix 扩容 ≠ 直接扩文件
而是:

向 dbspace 添加 chunk(数据文件或裸设备)

常见扩容方式:

  1. 已有 dbspace 空间不足 → 添加 chunk
  2. 新建 dbspace
  3. 临时表空间(tempdbspace)扩容

二、查看当前空间使用情况(必须先做)

onstat -d

重点关注:

  • Dbspaces 列表
  • Chunks 列表
  • free 字段(剩余空间)

例如:

Dbspace 1: rootdbs
  Chunk 1: /informix/data/rootdbs  size 100000 free 2000

三、准备新的 chunk 文件(推荐方式)

1️⃣ 创建数据文件(不要直接扩旧文件)

mkdir -p /informix/data
cd /informix/data

创建 10GB 的 chunk 文件:

dd if=/dev/zero of=datadbs01 bs=1M count=10240
chmod 660 datadbs01
chown informix:informix datadbs01

✅ Informix 不支持 resize 原有 chunk
✅ 只能 新增 chunk


四、向已有 dbspace 扩容(最常见)

示例:给 datadbs 扩容

onspaces -a datadbs \
  -p /informix/data/datadbs01 \
  -o 0 \
  -s 10240000

参数说明:

参数 含义
-a datadbs 向 datadbs 添加 chunk
-p chunk 文件路径
-o 0 offset(通常 0)
-s 大小(KB)

✅ 执行后立刻生效
✅ 不需要重启数据库


五、新建 dbspace(推荐做法)

如果是业务数据增长,建议新建 dbspace

onspaces -c -d newdbs \
  -p /informix/data/newdbs01 \
  -o 0 \
  -s 10240000

然后建表时指定:

CREATE TABLE test (
  id INTEGER
) IN newdbs;

六、临时表空间(tempdbspace)扩容

查看临时 dbspace:

onstat -d | grep temp

添加 chunk:

onspaces -a tempdbs \
  -p /informix/data/tempdbs02 \
  -o 0 \
  -s 5120000

七、Ubuntu 磁盘本身扩容(如果你需要)

如果 磁盘快满了,先扩操作系统:

1️⃣ 查看磁盘

df -h
lsblk

2️⃣ 扩分区(举例 LVM)

lvextend -L +20G /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

⚠️ 注意:
Informix 不会自动使用新增磁盘空间
你仍然需要添加 chunk


八、常见错误 & 注意事项

❌ 直接 resize chunk 文件

Informix 不支持

❌ chunk 权限不对

chown informix:informix chunk文件
chmod 660 chunk文件

❌ 路径不存在

Informix 不会自动创建目录


九、推荐最佳实践 ✅

✅ 一个 dbspace 多个 chunk
✅ 数据、索引、临时表分开 dbspace
✅ chunk 大小统一(如 10GB)
✅ 不要频繁小 chunk


十、我可以继续帮你

你可以直接贴出:

onstat -d

或告诉我:

  • Informix 版本
  • Ubuntu 版本
  • 是 rootdbs 还是业务 dbspace

我可以 帮你精确计算扩容方案

0