oceanbase单机版误删表,无备份,有方法可以恢复吗?

oceanbase是单机部署的,执行了错误的sql语句,导致做了删表并重新建表操作,之前的数据都没有了,在操作前也没有做备份。这种情况有办法恢复吗?求大神帮忙解答,感谢!!!

2 个赞

大概是无了

1 个赞

如果是没开启回收站功能,任何一个数据库都没办法复原吧

2 个赞

没有备份没办法恢复

1.闪回(Flashback)功能

如果你部署 OceanBase 时启用了 flashback 功能,可以通过回滚到某个时间点恢复数据。

    但 默认未开启,你需要确认系统参数:

SHOW PARAMETERS LIKE ‘%enable_flashback%’;

如果开启,可以执行如下类似语句:

    FLASHBACK TABLE your_table TO BEFORE DROP;

    前提:表未完全清除出系统元信息(即 TRUNCATE 和 DROP 后未完全 GC)
  1. 文件级别的数据残留扫描(高级技巧,成功率较低)

    由于你未做备份、表已被 DROP 并重建,可能原数据块还残留在磁盘(但没有索引/元信息引用)。

    可尝试以下方式:

     停掉 OceanBase 实例(防止进一步写入覆盖)。
    
     使用 文件扫描工具(如 strings、hexdump) 扫描数据目录,看是否能提取出原始数据片段。
    
     如果表结构复杂,这种方式恢复代价高、成功率低,但可以抢救少量关键数据。

闪回查询试试

都做了重建表操作,闪回查询应该也不行

obe应该工具读取底层文件数据库块内容