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
  • 相关阅读:
    深度优先和广度优先
    水管工游戏(深度优先)
    炸弹人
    广度优先(迷宫找人)
    System.Data.Entity.Core.MetadataException: 无法加载指定的无数据资源
    Element Cascader 级联选择器 单选操作优化
    Windows服务 ProjectInstaller 获取 路径
    Quartz.NET ScheduledFireTimeUtc 当超过1分钟时出现的问题。
    记录:一个SQL SERVER奇怪的问题。
    log4.net 配置
  • 原文地址:https://www.cnblogs.com/kellyseeme/p/5525148.html
Copyright © 2011-2022 走看看