在 Ubuntu + IBM Informix 环境下恢复表,常见有几种方式,取决于你有哪些备份和数据情况。下面按最常见场景给你讲清楚。
执行前请确认:
如果你的表是在某次备份之后才丢的,可以:
ontape -r
按提示:
⚠️ 会恢复整个实例,不只是单表
如果你之前导出了表:
dbimport dbname -d dbspacename
或
dbaccess dbname - <<EOF
load from '/path/table.unl'
insert into table_name;
EOF
在源库:
dbschema -d dbname -t table_name table.sql
unload to table.unl select * from table_name;
在目标库:
dbaccess dbname - <<EOF
create table table_name (...); -- 来自 table.sql
EOF
load from 'table.unl' insert into table_name;
如果用了 onbar + 存储管理器:
onbar -r -w # 整库
onbar -r -t table # 某些版本支持表级(需配置)
如果:
drop可尝试:
ontape -l # 恢复逻辑日志
或
⚠️ 操作复杂,建议 IBM 支持介入
informix 用户运行su - informix
echo $INFORMIXDIR
echo $ONCONFIG
onstat -
你可以告诉我:
我可以直接给你可执行的命令步骤。