Oracle闪回分类
Oracle数据库11g版本以后的flashbackup 分以下几种:
flashback database 闪回数据库,简单理解就是把数据库闪回到之前的某个确定的时间点。
flashback drop 闪回数据库表,用于表误drop后恢复。
flashback query 闪回表记录,用于数据表记录的恢复。
falshabck Table 闪回数据库表。
flashback database 闪回数据库
前提
需要确保数据库运行在归档模式下,这是使用闪回数据库的前提。
确认数据库是否开启Flashback Database功能:
–已开启
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
–已开启
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
手动开启
1,查看recovery_file参数
SQL> show parameter recovery_file;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +FRA
db_recovery_file_dest_size big integer 4407M
可以按需求调整db_recovery_file_dest,db_recovery_file_dest_size参数。
2,修改参数
#关闭数据库
shutdown immediate;
#开启mount模式
startup mount;
#按需求调整db_recovery_file_dest,db_recovery_file_dest_size参数。
alter system set db_recovery_file_dest=‘/Data/RECOVERY’;
alter system set db_recovery_file_dest_size=10g;
#开启归档模式
alter database archivelog;
#开启flashback功能
alter database flashback on;
#打开数据库
alter database open;
#验证Flashback功能已经成功开启
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
3,数据库闪回
flashback database to timestamp to_timestamp('2021-01-07 08:00:00′,’yyyy-mm-dd hh24:mi:ss’);
flashback table 恢复误drop表
flashback table testtable to before drop;
flashback query 闪回表记录
select * from testtable
as of timestamp to_timestamp('2021-01-07 08:00:00′,’yyyy-mm-dd hh24:mi:ss’)
where edittime >= sysdate-1;
flashback table 闪回数据库表
#激活行移动
ALTER TABLE testtableENABLE row movement ;
#闪回数据记录('2021-01-07 08:00:00'后的修改将丢失)
flashback table testtableto timestamp to_timestamp('2021-01-07 08:00:00','yyyy-mm-dd hh24:mi:ss');