原文:http://www.orafaq.com/node/1847
Oracle10g为数据库即时恢复提供了一种新选择:Flashback Database 。利用这一新特性,几乎可以完成即时恢复相关的所有工作。最近,在我删除(drop)表的时候,不小心将一个重要的表删除。使用这个特性,我很快就实现了数据库的恢复。
数据库闪回基于重做数据(undo data)来重建数据。它可以使用闪回日志访问数据的过去版本,结合归档日志,可以轻易的将数据库恢复到以前的某个时间点。这种方法更便捷且破坏性小。下面是一个简单的例子。
一、开启归档模式
依次执行以下命令:
$sqlplus / as sysdba
SQL>alter system set log_archive_dest_1='location=/home/oracle/,'mandatory';
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>alter database open;
二、设置FRA(Flash recovery area)
需要设置DB_RECOVERY_FILE_DEST_SIZE和DB_RECOVERY_FILE_DEST两个参数。第一个设置FRA的大小,第二个设置FRA的位置。注意:必须在设置完第一个参数后进行第二个参数的设置。当然,你可以试一下先设置第二个参数,看看会发生什么。
SQL>alter system set db_recovery_file_dest_size=4G;
SQL>alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area/;
注意:如果在创建数据库的过程中已经对FRA进行了设置,这里也可以不再进行设置。当然,也可以根据自己的喜好进行重新配置。闪回区域的大小受很多因素影响,像数据文件、日志文件、控制文件大小,备份保留策略,数据变化频率等。
三、开启闪回
SQL>shutdown immediate
SQL>startup mount
SQL>alter database flashback on;
SQL>alter database open;
现在,我们可以查询表v$flashback_database_log看看发生了什么。
SQL>select * from v$flashback_database_log;
LDEST_FLASHBACK_SCN OLDEST_FL RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- --------- ---------------- -------------- ------------------------
539853 09-MAY-07 4320 8192000 0
可以看到,我们可以闪回到的最早SCN为539853。换句话说,这是我们的基线。可以很方便的将SCN转换为TIMESTAMP。
SQL>select scn_to_timestamp(539853) from dual;
四、闪回
下面开始闪回操作,我将先创建一张表,然后截断(truncate)它。但是,在截断前,需要找出SCN或timestamp作为闪回的目标点。
SQL>create table s as select * from tab;
SQL>select current_scn,scn_to_timestamp(current_scn) from v$database;
CURRENT_SCN SCN_TO_TIMESTAMP(CURRENT_SCN) ----------- --------------------------------------------------------------------------- 591023 10-MAY-07 11.53.52.000000000 AM
SQL>truncate tabel s;
SQL>shutdown immediate
SQL>startup mount
SQL>flashback database to scn 591023;
SQL>alter database open resetlogs;
SQL>select * from s where rownum=1;
TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- ICOL$ TABLE 4
如果闪回结果不是你想要的,可以使用命令RECOVER DATABASE将数据库恢复到闪回之前的状态。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24867611/viewspace-735352/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24867611/viewspace-735352/