oceanbase是单机部署的,执行了错误的sql语句,导致做了删表并重新建表操作,之前的数据都没有了,在操作前也没有做备份。这种情况有办法恢复吗?求大神帮忙解答,感谢!!!
2 个赞
大概是无了
1 个赞
如果是没开启回收站功能,任何一个数据库都没办法复原吧
2 个赞
没有备份没办法恢复
1.闪回(Flashback)功能
如果你部署 OceanBase 时启用了 flashback 功能,可以通过回滚到某个时间点恢复数据。
但 默认未开启,你需要确认系统参数:
SHOW PARAMETERS LIKE ‘%enable_flashback%’;
如果开启,可以执行如下类似语句:
FLASHBACK TABLE your_table TO BEFORE DROP;
前提:表未完全清除出系统元信息(即 TRUNCATE 和 DROP 后未完全 GC)
-
文件级别的数据残留扫描(高级技巧,成功率较低)
由于你未做备份、表已被 DROP 并重建,可能原数据块还残留在磁盘(但没有索引/元信息引用)。
可尝试以下方式:
停掉 OceanBase 实例(防止进一步写入覆盖)。 使用 文件扫描工具(如 strings、hexdump) 扫描数据目录,看是否能提取出原始数据片段。 如果表结构复杂,这种方式恢复代价高、成功率低,但可以抢救少量关键数据。
闪回查询试试
都做了重建表操作,闪回查询应该也不行
obe应该工具读取底层文件数据库块内容