oracle 数据恢复

1:使用drop进行表删除

oracle 回收站recyclebin是10G才有的新特性。 当我们drop table cube_scope [purge] 时,如果不指定purge时,系统只是将这个表重命名为BIN$开头的名称, 并在数据字典中修改了相关的数据,表所占用的物理表空间,实际并没有真正的收回,此时所占用的表空间还是原来的表空间,当表空间不够用时,oracle会根据DROPSCN自动进行清理,10G默认是打开回收站功能的

 

查看是否开启回收站功能

show parameter recyclebin

 

查询recyclebin中的数据

select * from recyclebin (表名和之前的表名都为大写)

 

恢复数据

flashback table cube_scope to before drop

恢复数据库表,此时有表,但是表的索引,约束都已经丢失,需要重新创建

flashback table cube_scope to before drop rename to cube_scope_old

将恢复的数据表重新命名

 

2: delete对表进行的删除

首先我们创建一个表: insert into  bak_tc_s   select * from test_name t where rownum  < 10

 

对其进行数据删除: delete from bak_tc_s

 

查看当前SCN 和 bak_tc_s 和表对应的数据

select current_scn from v$database;  ----518653017489 

select count(*) from  bak_tc_s as of scn 518653017489    ---0

 

尝试查询bak_ts  有9条数据的系统时间scn

select count(*) from  bak_tc_s as of scn  518652882204   ---9条

 

数据恢复

insert intobak_tc_s select * from bak_tc_s as of scn  518652882204  

再次查询表bak_tc_s,查看已经恢复

 

SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。
  SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的
  注释:Oracle 仅根据 SCN 执行恢复。
  它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下,
  这两个名词经常被交替使用。
  究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。

 

 

 

 

 

Oracle的闪回特性之恢复truncate删除表的数据

http://www.cnblogs.com/mq0036/p/4171711.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值