WEB开发网
开发学院数据库Oracle 用Oracle闪回功能恢复偶然丢失的数据 阅读

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

 2007-05-08 12:10:23 来源:WEB开发网   
核心提示: 通过以上的操作,我们插入了两条记录,用Oracle闪回功能恢复偶然丢失的数据(4),并删除了其中一条记录,在以下的操作中,Oracle将自动创建恢复区,但默认是关闭的,我们将通过flashback query找到删除的记录(4)闪回查询SQL> DECLARERestore_scn

通过以上的操作,我们插入了两条记录,并删除了其中一条记录。在以下的操作中,我们将通过flashback query找到删除的记录

(4)闪回查询SQL> DECLARE
Restore_scn date;
BEGIN
Select date_scn into restore_scn from rec_date;
Dbms_flashback.enable_at_time (restore_scn);
END;
SQL> select * from test;
ID
1
2

可以看出,虽然删除记录并提交,但是通过闪回操作,仍能查询到删除前的两条记录。需要注意Oracle每5分钟记录一次SCN,并将SCN和对应时间的映射进行纪录。如果原来插入的记录到做闪回操作的时间在5分钟之内,用基于时间的闪回查询可能得不到记录,因为基于时间点的查询实际上是转化为最近的一次SCN,然后从这个SCN开始进行恢复。因此,如果需要精确的查询可以采用基于SCN的闪回查询,可精确闪回到需要恢复的时间。可以通过DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER语句获取SCN。

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命令。

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 功能 恢复

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接