温馨提示×

linux informix怎么恢复误删

小樊
60
2026-09-05 03:38:53
栏目: 智能运维

在 Linux 上 Informix 数据库误删数据或误删对象(表、库、文件等),恢复方式取决于你删的是什么以及有没有备份/日志。下面按常见场景说明。


一、误删「表数据」(DELETE / TRUNCATE)

✅ 情况 1:开启了逻辑日志(默认一般开启)

可以通过 事务日志回滚 / 时间点恢复

1️⃣ 确认数据库是否支持事务

SELECT * FROM sysmaster:sysdatabases
WHERE name = 'your_db';
  • logflag 非 0 → 有逻辑日志

2️⃣ 使用 onbar 或 onlog 分析日志

onlog -l

3️⃣ 时间点恢复(PITR)

onbar -r -t "2024-01-01 10:00:00"

✅ 情况 2:刚删,事务还没提交

ROLLBACK WORK;

✅ 情况 3:误删后表还在,数据没了

可尝试:

  • 从 上次备份恢复
  • 或从 逻辑日志重放

二、误删「整张表」(DROP TABLE)

✅ 有备份

onbar -r -t "时间点"

✅ 无备份但逻辑日志完整

可用 onlog + 自己解析 DDL (复杂,一般不推荐手工)


三、误删「数据库」(DROP DATABASE)

✅ 只能从备份恢复

onbar -r -w

四、误删「数据文件 / chunk 文件」

⚠️ 不要重启 Informix!

立即停止写操作

恢复方式:

  1. 从备份恢复 chunk
onbar -r -p
  1. 应用逻辑日志
onbar -r -l

五、误删「物理文件(rm 掉了)」

✅ Linux 未重启,进程还在

lsof | grep deleted

从 /proc/PID/fd 拷回


六、最推荐的预防措施(以后别再哭)

✅ 开逻辑日志
✅ 定期 onbar 备份
✅ 删除前先 SELECT 备份
✅ 使用事务 + 确认提交


七、你可以告诉我

我可以给你精确命令,只要说明:

  1. 删的是:数据 / 表 / 库 / 文件?
  2. 是否提交?
  3. 有无 onbar 备份?
  4. Informix 版本

我可以直接帮你写恢复方案。

0 踩