查询闪回归档文档是否开启:archive log list;
开启闪回归档文档:在mount状态执行alter database archivelog;
设置合理的闪回区:
db_recovery_file_dest:指定闪回恢复区的位置
db_recovery_file_dest_size:指定闪回恢复区的可用空间大小
db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟(1天),实际取决于闪回区大小
检查是否开启闪回:
select flashback_on from v$database;
开启闪回:
mount状态:alter database archivelog;
alter system set db_recovery_file_dest='/home/U01/app/oracle/fast_recovery_area' scope=both;
alter system set db_recovery_file_dest_size=60G scope=both;
alter system set db_flashback_retention_target=4320 scope=both;
alter database flashback on;
关闭闪回:
alter database flashback off;
闪回操作:
回看某一时间段的表数据
select * from scott.dept as of timestamp to_timestamp('2017-12-14 16:20:00','yyyy-mm-dd hh24:mi:ss');
闪回查询:
单表修改闪回操作:
alter table tcl_mrp_header_history enable row movement;
flashback TABLE tcl_mrp_header_history to timestamp TO_TIMESTAMP('20180928 10:00:00','YYYYMMDD HH24:MI:SS');
单表被删除闪回操作:
当一个表被drop掉,表会被放入recyclebin回收站,可通过回收站做表的闪回。表上的索引、约束等同样会被恢复
不支持sys/system用户表空间对象,可通过alter system set recyclebin=off;关闭回收站功能
flashback table XXX to before drop;
备注:即使不开始flashback,只要开启了recyclebin,那么就可以闪回DROP表。
但如果连续覆盖,就需要指定恢复的表名,如果已经存在表,则需要恢复重命名。
闪回数据库:
flashback database to timestamp to_timestamp('2017-12-14 14:12:46','yyyy-mm-dd HH24:MI:SS');
备注:慎重使用