闪回

闪回技术可以不需要使用备份文件,依赖于回滚段中的数据前镜像,恢复一定时间内的数据。过久之前的数据,只能通过备份文件恢复了。

查看是否开启闪回:

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
YES

 

一、闪回分类

 

 

前四种闪回技术,依赖于undo表空间,可闪回的极限时间由undo_retention决定;

闪回数据库技术,可闪回的极限时间由db_flashback_retention_target所决定。

SQL> show parameter undo_retention;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_retention                       integer     900 (单位是秒)

SQL> show parameter db_flashback_retention_target;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target        integer     1440  (单位是分钟)

 

二、闪回查询

select * from scott.stu as of timestamp to_date('20211111 17:05:39','yyyymmdd hh24:mi:ss');

 

 

三、闪回版本查询

select versions_starttime,versions_endtime,versions_xid,versions_operation,sno,sname,sage 
from scott.stu 
versions between timestamp minvalue and maxvalue;

-- versions_starttime,versions_endtime,versions_xid,versions_operation
-- 这些都是伪列:分别是事务的开始时间、结束时间、SCN号、ID号等

 

 

可以进行基于闪回版本查询的恢复——闪回事务查询

就是从flashback_transaction_query中查询引起数据变化的事务,和撤销事务的SQL;查询出的结果中的undo sql可以提取出来执行恢复;

 select OPERATION,UNDO_SQL 
 from flashback_transaction_query 
 where table_owner='SCOTT' and table_name='STU';
 
-- 如果查询结果中undo sql没有值,执行命令:alter database add supplemental log data;

 

 

四、闪回表(自动回退)

特点:在线操作,自动恢复相关的属性,包括索引、触发器等。

前提:启动行迁移

注意:sys的表不能闪回。

1. 启动行迁移: alter table scott.stu enable row movement;
2. flashback table scott.stu to timestamp to_date('20211018 10:44:39','yyyymmdd hh24:mi:ss');

 

五、闪回删除

从回收站里捞回来

SQL> drop table stu;
Table dropped

SQL> select * from stu;
ORA-00942: table or view does not exist

SQL> flashback table stu to before drop;
Done

SQL> select * from stu;
    SNO SNAME                                    SAGE
-----------------------------------------------------
     1 TOM                                        21
     2 LILY                                       22
     3 BOB                                        23

 

六、闪回数据库

  1. 配置数据库为归档模式:alter database archivelog;

  2. 配置闪回恢复区:show parameter db_recovery_file_dest;

  3. 配置闪回保留时间:show parameter db_flashback_retention_target;

  4. 启用数据库闪回:alter database flashback on;

  5. 进行闪回数据库:flashback database to timestamp;

 

posted @ 2021-11-11 18:03  西泽Xiz  阅读(327)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css