在 Ubuntu 上给 IBM Informix 数据库扩容,通常指的是 增加数据库空间(dbspace),而不是操作系统层面的磁盘扩容。下面按最常见场景给你一个完整、可操作的说明。
Informix 扩容 ≠ 直接扩文件
而是:
向 dbspace 添加 chunk(数据文件或裸设备)
常见扩容方式:
onstat -d
重点关注:
Dbspaces 列表Chunks 列表free 字段(剩余空间)例如:
Dbspace 1: rootdbs
Chunk 1: /informix/data/rootdbs size 100000 free 2000
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
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
onspaces -c -d newdbs \
-p /informix/data/newdbs01 \
-o 0 \
-s 10240000
然后建表时指定:
CREATE TABLE test (
id INTEGER
) IN newdbs;
查看临时 dbspace:
onstat -d | grep temp
添加 chunk:
onspaces -a tempdbs \
-p /informix/data/tempdbs02 \
-o 0 \
-s 5120000
如果 磁盘快满了,先扩操作系统:
df -h
lsblk
lvextend -L +20G /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
⚠️ 注意:
Informix 不会自动使用新增磁盘空间
你仍然需要添加 chunk
Informix 不支持
chown informix:informix chunk文件
chmod 660 chunk文件
Informix 不会自动创建目录
✅ 一个 dbspace 多个 chunk
✅ 数据、索引、临时表分开 dbspace
✅ chunk 大小统一(如 10GB)
✅ 不要频繁小 chunk
你可以直接贴出:
onstat -d
或告诉我:
我可以 帮你精确计算扩容方案 ✅