zoukankan      html  css  js  c++  java
  • flashback table恢复数据

    flashback table恢复数据

    flashback table主要是是用undo 表空间的内容,进行对数据修改的回退操作
    语法如下:
    根据scn号来进行回退
    SQL> flashback table kel.t1 to scn 896744;
    根据时间来进行回退
    SQL> flashback table kel.t1 to timestamp to_timestamp('2014-07-28 00:18:00','yyyy-mm-dd hh24:mi:ss');

    1 准备测试数据

     1.1 得到第一个修改的scn点

    SQL> insert into t1 values (1,'kel');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    SQL> select current_scn from v$database;
    
    CURRENT_SCN
    -----------
         896684

    1.2 得到第二个修改的scn点

    SQL> insert into kel.t1 values (2,'kel2');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select current_scn from v$database;
    
    CURRENT_SCN
    -----------
         896697

    1.3 得到第三个修改的scn点

    SQL> insert into kel.t1 values (3,'kel3');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select current_scn from v$database;
    
    CURRENT_SCN
    -----------
         896744

    1.4 得到最后的scn点

    SQL> delete from kel.t1 where id =2;
    
    1 row deleted.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select current_scn from v$database;
    
    CURRENT_SCN
    -----------
         896761

    2 进行恢复

    在进行恢复的时候,必须要允许表进行row move ment
    SQL> alter table kel.t1 enable row movement;
    
    Table altered.

    2.1 第一次恢复

    SQL> flashback table kel.t1 to scn 896684;
    
    Flashback complete.
    
    SQL> select * from kel.t1;
    
    	ID NAME
    ---------- --------------------
    	 1 kel

    2.2 第二次恢复

    SQL> flashback table kel.t1 to scn 896697;
    
    Flashback complete.
    
    SQL> select * from kel.t1;
    
    	ID NAME
    ---------- --------------------
    	 1 kel
    	 2 kel2

    2.3 第三次恢复

    SQL> flashback table kel.t1 to scn 896744;
    
    Flashback complete.
    
    SQL> select * from kel.t1;
    
    	ID NAME
    ---------- --------------------
    	 1 kel
    	 2 kel2
    	 3 kel3

    3 总结

    在进行数据恢复的时候,不可能知道准确的SCN点或者时间点,只能进行猜测数据时间或者是scn来进行恢复。
    flashback table 的功能依赖于UNDO表空间中的内容,可以反复的进行flashback table,只要UNDO中的内容保存的足够多。
    for linux and python
  • 相关阅读:
    AtCoder Grand Contest 033
    Luogu P6620 [省选联考 2020 A 卷] 组合数问题
    Luogu P6631 [ZJOI2020] 序列
    Luogu P6630 [ZJOI2020] 传统艺能
    Luogu P6633 [ZJOI2020] 抽卡
    Luogu P6623 [省选联考 2020 A 卷] 树
    AtCoder Grand Contest 034
    Luogu P5445 [APIO2019] 路灯
    LOJ #6059. 「2017 山东一轮集训 Day1」Sum
    Luogu P3721 [AH2017/HNOI2017]单旋
  • 原文地址:https://www.cnblogs.com/kellyseeme/p/5525148.html
Copyright © 2011-2022 走看看