首页 | 公司简介 | 数据恢复 | 备份服务 | 成功案例 | 技术中心 | 客户服务 | 服务报价 | 数据恢复软件 | 联系我们 | 北亚博客  
 
  北京总部: 4006-505-646
  天 津 部: 4006-505-646
  上 海 部: 4006-505-646
  深 圳 部: 4006-505-646
  广 州 部: 4006-505-646
  重 庆 部: 4006-505-646
  南 京 部: 4006-505-646
  其它地区: 4006-505-646
北亚数据恢复软件Windows专业版
三星手机数据恢复软件V1.0
北亚苹果手机数据恢复软件V2.0
北亚硬盘录像机数据恢复软件 V
北亚vmware虚拟机数据恢复软件
北亚照片数据恢复软件
北亚摄像机数据恢复软件 v2.1
北亚Sybase数据库修复软件 V2.
raid磁盘阵列应急方案
HP EVA4400/6400/8400/P6000
iphone 通讯录丢失如何恢复?
xen server 存储库(sr)损坏后
RAID6结构原理详解(北亚数据
AIX下删除LV后的现场保护和数
RAID损坏后 对数据的完整备份
您当前的位置:首页 >> 技术中心 >> 数据库修复文栏 >> 正文

用Oracle闪回功能恢复偶然丢失的数据 (2)

Oracle 10g的闪回查询概述

与Oracle 9i相比Oracle 10g的Flashback有了非常大的改进,从普通的Flashback Query发展到了多种形式,主要表现在如下几方面新特性:

1、Flashback Database

Oracle Flashback Database特性允许通过SQL语句Flashback Database语句,让数据库前滚到当前的前一个时间点或者SCN,而不需要做时间点的恢复。闪回数据库可以迅速将数据库回到误操作或人为错误的前一个时间点,如Word中的"撤消"操作,可以不利用备份就快速的实现基于时间点的恢复。Oracle通过创建新的Flashback Logs(闪回日志),记录数据库的闪回操作。如果希望能闪回数据库,需要设置如下参数:DB_RECOVER_FILE_DEST日志的存放位置,DB_RECOVER_FILE_DEST_SIZE恢复区的大小。在创建数据库的时候,Oracle将自动创建恢复区,但默认是关闭的,需要执行alter database flashback on命令。

例:执行Flashback Database命令格式。

SQL>flashback database to time to_timestamp(xxx);
SQL>flashback database to scn xxx

2、Flashback Table

Oracle Flashback Table特性允许利用Flashback Table语句,确保闪回到表的前一个时间点。与Oracle 9i中的Flashback Query相似,利用回滚段信息来恢复一个或一些表到以前的一个时间点(一个快照)。要注意的是,Flashback Table不等于Flashback Query,Flashback Query仅仅是查询以前的一个快照点而已,并不改变当前表的状态,而Flashback Table将改变当前表及附属对象一起回到以前的时间点。

语法:

flashback table tablename to timestamp xxx或
flashback table tablename to scn xxx

注意:如果需要闪回一个表,需要以下条件:

·需要有flashback any table的系统权限或者是该表的flashback对象权限;

·需要有该表的select,insert,delete,alter权限;

·必须保证该表row movement。

例:执行将test表闪回到2005年5月7日下午3点。

SQL>flashback table test to timestamp to_timestamp(’2005-05-07 15:00:00’,’yyyy-mm-dd hh24:mi:ss’);

3、Flashback Drop

Oracle Flashback Drop特性提供一个类似回收站的功能,用来恢复不小心被删除的表。当删除表时,Oracle 10g并不立刻释放被删除的表所占用的空间,而是将这个被删除的表进行自动重命名(为了避免同类对象名称的重复)并放进回收站中。所谓的回收站类似于Windows系统中的回收站,是一个虚拟的容器,用于存放所有被删除的对象,在回收站中被删除的对象将占用创建时的同样的空间。如果这个被删除的表需要进行恢复,就可利用Flashback Drop功能。

例:进行一个删除表后恢复的简单测试。

(1)显示回收站信息

SQL>show recyclebin;

可以看到,回收站中是没有任何结果的,表示没有任何表在回收站中。

(2)创建一个表,并删除,再次显示回收站信息

SQL>create table test_drop(name varchar2(10));
SQL>drop table test_drop;
SQL>show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
TEST_DROP BIN$b+XkkO1RS5K10uKo9BfmuA==$0 TABLE 2005-05-07:14:30:47

(3)对被删除的表进行恢复

SQL>flashback table test_drop to before drop;或
SQL>flashback table "BIN$b+XkkO1RS5K10uKo9BfmuA==$0" to before drop;

(4)管理回收站

清除回收站中的单个表:purge table test_drop

清除整个回收站:purge recyclebin

清除不同的对象回收站:purge user_recyclebin或purge dba_recyclebin

(5)确认删除一个表

SQL>drop table test_drop purge;

如果删除一个表且不放到回收站中不能进行恢复,在drop语句中可以利用purge选项。

本新闻共3页,当前在第1页  1  2  3  

上一篇:用Oracle闪回功能恢复偶然丢失的数据 (1)
下一篇:关于Oracle数据库中密码安全管理总结
返回首页 | 联系我们 | 关于我们 | 招聘信息 | 友情链接 | 网站地图 | 合作伙伴
版权所有 北京北亚宸星科技有限公司
全国统一客服热线:4006-505-646
北京总部:北京市海淀区永丰基地丰慧中路7号新材料创业大厦B座205室
京ICP备09039053