閃回


閃回技術可以不需要使用備份文件,依賴於回滾段中的數據前鏡像,恢復一定時間內的數據。過久之前的數據,只能通過備份文件恢復了。

查看是否開啟閃回:

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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM