博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Orcale-利用闪回恢复数据方法
阅读量:5027 次
发布时间:2019-06-12

本文共 1030 字,大约阅读时间需要 3 分钟。

一.delete误删

  方法1:如果表结构没有改变,直接闪回整个表,具体步骤:

  --首先需要表闪回权限,开启行移动功能

  alter table 表名 enable row movement;

  --执行闪回恢复表数据到某个时间点

  flashback table 表名 to timestamp to_timestamp(‘恢复的时间点','yyyy-mm-dd hh24:mi:ss');

  --关闭行移动功能

  alter table 表名 disable row movement;

  方法2:查询被删除数据,再执行insert

  insert into 表名 (select * from 表名 as of timestamp to_timestamp('恢复的时间点','yyyy-mm-dd hh24:mi:ss'));

二.drop误删 

原理:由于oracle在删除表时,没有直接清空表所占的块,oracle把这些已删除的表的信息放到了一个虚拟容器“回收站”中,而只是对该表的数据块做了可以被覆写的标志,所以在块未被重新使用前还可以恢复。

  1.如果记得被删的表名,直接闪回 

  flashback table 原表名 to before drop;

  2.不记的表明,先从“回收站”找到呗删除的表,再执行恢复:

  -- 查询被删除的表,table_name或者object_name就是删除后在回收站中被重新命名的表名

   select table_name,dropped from user_tables;

   select object_name,original_name,type,droptime from user_recyclebin;

  -- 执行恢复

  flashback table "回收站中的表名" to before drop rename to 新表名;

三.闪回整个数据库

  alter database flashback on;

  flashback database to scn SCNNO;
  flashback database to timestamp to_timestamp('恢复的时间点','yyyy-mm-dd hh24:mi:ss');

 

转载于:https://www.cnblogs.com/caster-xzn/p/8686376.html

你可能感兴趣的文章
Sam做题记录
查看>>
[bzoj] 2453 维护数列 || 单点修改分块
查看>>
IIS版本变迁
查看>>
BZOJ3884: 上帝与集合的正确用法 拓展欧拉定理
查看>>
mybatis09--自连接一对多查询
查看>>
myeclipse10添加jQuery自动提示的方法
查看>>
【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。...
查看>>
视频监控 封装[PlayCtrl.dll]的API
查看>>
软件工程APP进度更新
查看>>
Python 使用正则替换 re.sub
查看>>
CTF中那些脑洞大开的编码和加密
查看>>
简化工作流程 10款必备的HTML5开发工具
查看>>
c++ 调用外部程序exe-ShellExecuteEx
查看>>
Java进击C#——语法之知识点的改进
查看>>
IdentityServer流程图与相关术语
查看>>
BirdNet: a 3D Object Detection Framework from LiDAR information
查看>>
icon fonts入门
查看>>
【Django】如何按天 小时等查询统计?
查看>>
HDU2191(多重背包)
查看>>
测试用例(一)
查看>>