Oracle 数据误删的恢复措施——drop或delte有日志

  Oracle中,常见的数据删除操作就三种,truncate,drop,delete,下面分类说一下如何恢复
1、Drop:
         通过查看Oracle的回收站,可以查到被删除的表、索引等,通过下列语句可以实现表数据恢复
         Oracle回收站:SELECT * FROM RECYCLEBIN where original_name='表名';
         还原指定表:FLASHBACK TABLE 表名 TO BEFORE DROP;
         还原指定表:FLASHBACK TABLE "BIN$dtGnFYeHXSvgU304AArEyg==$0" TO BEFORE DROP;
         清空回收站:PURGE TABLE  "BIN$34btciE8RySPmHqIlCGnVg==$0";
         清空回收站:PURGE TABLE recycle_tmp;


2、Delete:
------------恢复delete误删数据-1
         --根据时间戳查看表数据情况
         select * from t1 as of timestamp to_timestamp('2018-09-17 09:50:11','yyyy-mm-dd hh24:mi:ss');
         --设置允许表行移动
         alter table t1 enable row movement;
         --将表数据恢复到某一时间点
         flashback Table t1 to timestamp to_timestamp('2018-09-17 09:50:11','yyyy-mm-dd hh24:mi:ss');
         --或者直接插入丢失数据
         Insert Into t1 Select * FROM t1 As Of Timestamp to_timestamp('2018-09-17 09:50:11','yyyy-mm-dd hh24:mi:ss');
------------恢复delete误删数据-2
         --查看数据库当前scn(system change number)
         select current_scn from v$database;
         --寻找误删前的表数据(缩小scn号查询)
         select * from t1 as of scn 38887000;
         --设置允许表行移动
         alter table t1 enable row movement;
         --将表数据恢复到指定scn
         flashback table t1 to scn 38887000;
3、Truncate:
后续
————————————————
参考:https://blog.csdn.net/AikesLs/article/details/86014797

posted @   山䂥进城  阅读(232)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示