设置闪回
alter database archivelog;(闪回必须运行在归档模式)
SQL> alter database FLASHBACK on;(闪回启动)
SQL> alter database open;
SQL> select FLASHBACK_ON from v$database;
查看恢复路径
SQL> show parameter recover
db_recovery_file_dest (恢复的路径)
db_recovery_file_dest_size (区域里的配额)
闪回日志的位置
cd /oracle/app/flash_recovery_area/TEST/flashback/
闪回保留时间(默认1天)
SQL> show parameter flashback
============================================
闪回数据库(缺点:恢复到时间点后的数据丢失)
查看时间点
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
查看最早可以恢复到的时间点
SQL> select to_char(OLDEST_FLASHBACK_TIME,'yyyy-mm-dd hh24:mi:ss') from v$flashback_database_log;
SQL> shutdown abort
SQL> startup mount
恢复到删除用户前的时间点
SQL> flashback database to timestamp to_timestamp('2012-04-24 05:40:51','yyyy-mm-dd hh24:mi:ss');
SQL> alter database open resetlogs;
===================================================
管理 闪回
SQL> show parameter recover
更改闪回目录
SQL> alter system set db_recovery_file_dest='/home/oracle/flash';
===============================
flashback drop 使用
drop表时,等于把表放到回收站中(默认情况下,Oracle是将此功能开启的。)
查看回收站
SQL> show parameter recyclebin
SQL> show recyclebin; (没有内容,sysdba的drop操作是不会送到recyclebin)
scott用户
SQL> create table tt(id int);
SQL> drop table tt;
SQL> commit;
scott下
SQL> show recyclebin;
或
SQL> select object_name,original_name from recyclebin;
scott用户
SQL> flashback table tt to before drop;
=============================================
flashback query
(Flashback Query 是利用多版本读一致性的特性从UNDO 表空间读取操作前的记录数据)
SQL> create table t(id int);
SQL> insert into t values(11);
SQL> commit;
SQL> delete from t;
SQL> commit;
显示当前时间
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
显示这个时间点上的数据
SQL> select * from a as of timestamp to_timestamp('2013-02-22 10:36:00','yyyy-mm-dd hh24:mi:ss');
创建个新表装a里的数据
SQL> create table b as select * from a as of timestamp to_timestamp('2013-02-22 10:36:00','yyyy-mm-dd hh24:mi:ss');
(前提条件是,undo表空间不能被覆盖)
flashback data1base闪回到过去的某一时刻
优点:
数据库的闪回恢复的速度要快于RMAN以及基于用户管理的备份与恢复
缺点:
使用闪回日志来实现数据库闪回,闪回点之后的数据将丢失
使用resetlogs创建新的场景并打开数据库(一旦resetlogs之后,将不能flashback resetlogs之前)
闪回能够恢复的程度取决于闪回空间的大小以及闪回的保留策略,闪回空间大小会被循环使用,而闪回的保留策略则决定了闪回日志保留的时间长度。
FLASHBACK DROP
优点:
允许在不丢失任何数据库的情况下将指定的表恢复至其被删除的时间点,并保持数据库为当前状态
只要空间未被复用,该表即可恢复。
缺点:
对于表空间不足时,系统会自动清除回收站中最老的对象,以满足当前需求,该表才会被真正删除。
闪回查询通常分为Flashback Query(闪回查询),Flashback Table Query(闪回表查询),Flashback Version Query(闪回版本查询),Flashback Transaction Query(闪回事务查询)。
优点:
Flashback Query的所有形式取决于UNDO表表空间,闪回查询获得所需的记录信息,然后来构造新的DML语句并实施其操作来保证数据的完整性。
缺点:
对于UNDO表空间不足时,系统会覆盖UNDO表空间的内容,以致不能闪回被覆盖的UNDO段。