• 20.1 使用FlashBack 查询实现行级恢复


    (1) 模拟用户误操作

    SQL> conn scott/tiger@demo
    已连接。
    SQL> host date
    当前日期: 2009-02-19 星期四
    输入新日期: (年月日)

    SQL> host time
    当前时间: 16:40:43.29
    输入新时间:

    SQL> select current_scn from v$database;

    CURRENT_SCN
    -----------
        1975467

    SQL> delete from emp where deptno=30;

    已删除6行。

    SQL> commit;

    提交完成。

    (2) 使用 FlashBack 查询取得早期时间点表行数据

    SQL> select ename,sal,job,deptno from emp as of timestamp
      2  to_timestamp('2009-02-19 14:40:43','YYYY-MM-DD HH24:MI:SS')
      3  where deptno=30;

    ENAME             SAL JOB           DEPTNO
    ---------- ---------- --------- ----------
    ALLEN            1600 SALESMAN          30
    WARD             1250 SALESMAN          30
    MARTIN           1250 SALESMAN          30
    BLAKE            2850 MANAGER           30
    TURNER           1500 SALESMAN          30
    JAMES             950 CLERK             30

    已选择6行。

    SQL> select ename,sal,job,deptno from emp as of scn 1975467 where deptno=30;

    ENAME             SAL JOB           DEPTNO
    ---------- ---------- --------- ----------
    ALLEN            1600 SALESMAN          30
    WARD             1250 SALESMAN          30
    MARTIN           1250 SALESMAN          30
    BLAKE            2850 MANAGER           30
    TURNER           1500 SALESMAN          30
    JAMES             950 CLERK             30

    已选择6行。

    (3) 使用 FlashBack 查询恢复表行数据

    SQL> insert into emp select * from emp as of scn 1975467 where deptno=30;

    已创建6行。

    SQL> commit;

    提交完成。

  • 相关阅读:
    操作系统-多进程图像
    025.Kubernetes掌握Service-SVC基础使用
    Linux常用查看版本指令
    使用动态SQL处理table_name作为输入参数的存储过程(MySQL)
    INTERVAL 用法 mysql
    sql server编写archive通用模板脚本实现自动分批删除数据【填空式编程】
    docker部署redis集群
    Ubuntu1804下安装Gitab
    Bash脚本编程学习笔记06:条件结构体
    KVM虚拟化基础
  • 原文地址:https://www.cnblogs.com/yiwuya/p/3018969.html
Copyright © 2020-2023  润新知