1、闪回查询(原理:依赖于UNDO表空间)
查询当前SCN号
select current_scn from v$database;
误删数据以后
select * from table_name as of scn 删除数据前的SCN号;
将数据重新插入表中
insert into table_name select * from table_name as of scn 删除数据前的SCN号;
2、闪回drop(原理:利用回收站recyclebin)
查看是否启用回收站
show parameter recyclebin
如果启用了回收站功能drop掉的非系统空间的表,都会保留在回收站中
show recyclebin
拿回误删的表
flashback table table_name to before drop;
3、闪回table(对表数据进行了错误的修改,回退到原数据)(undo)
flashback table table_name to scn 修改数据前的SCN号;
改变表,使行可以movement
alter table table_name enable row movement;
4、闪回version query(闪回版本查询)
查询你对表操作的所有记录
select versions_xid,versions_operation,versions_startscn,versions_starttime,versions_endscn,versions_endtime,id,name
from table_name versions between scn minvalue and maxvalue;
5、闪回transaction query(闪回事务查询)
select * from flashback_transaction_query where xid=‘34查询到的versions_xid‘;
找到undo_sql,复制执行就可以了
6、闪回database
查询数据库是否支持闪回数据库
select flashback_on from v$database;
启用闪回数据库功能,需要数据在mount状态下(归档模式)启动,然后
alter database flashback on;
然后确认启用恢复区
show parameter db_recovery
保证db_recovery_file_dest配置的有值
查询相关视图
select * from v$flashback_database_logfile;
select * from v$flashback_database_log;
删除了某个数据库用户,然后闪回
flashback database to scn 需要闪回的SCN号;
然后查看当前数据库有哪些用户,看一下被删除的用户是否撤回
select username from dba_users;