今天在部署系统的时候,由于误操作导致删除了几十张表,并且重新构建了这些表,由于表结构发生了改变,而且数据库并没有备份,导致改数据的恢复不那么简单。于是我研究了下oracle数据库在数据误删的情况下如何恢复数据。
第一种方式:闪回
这种方式依赖于数据库闪回策略的开启,如果没有开启闪回机制,那么这种方式将失效。
这种方式也分好几种情况的恢复数据,若是只是删除了数据并没有修改表结构,那么可以这样闪回:
select * from 表名 as of timestamp(systimestamp - interval "24" hour)
如果drop了表:可以这样闪回:
flash table 表名 to before drop或者
flash table 表名 to before drop rename to 新表名
网友评论