zoukankan      html  css  js  c++  java
  • 闪回版本查询

    闪回版本查询

    1. 创建测试案例

    sqlplus / as sysdba
    scott@ORCL> select * from SCOTT.emp where sal=1300;

        EMPNO ENAME               JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ----------
         7934 AAA                 CLERK                    7782 1982-01-23 00:00:00       1300                    10

    scott@ORCL> update SCOTT.emp set empno=7910 ,ename='ABC' where SAL=1300;

    1 row updated.

    scott@ORCL> commit;

    Commit complete.

    scott@ORCL> select * from SCOTT.emp where sal=1300;

        EMPNO ENAME               JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ----------
         7910 ABC                 CLERK                    7782 1982-01-23 00:00:00       1300                    10

    2. 闪回版本查询

    SQLPLUS / AS SYSDBA
    COL VERSIONS_STARTTIME FOR A25
    COL VERSIONS_ENDTIME FOR A25

    SELECT versions_startscn,
          versions_starttime,
          versions_endscn,
          versions_endtime,
          versions_xid,
          versions_operation,
          empno,
          ename
     FROM scott.emp VERSIONS BETWEEN TIMESTAMP SYSDATE - 5 / 1440 AND SYSDATE --时间注意调整
    WHERE sal = 1300;

    VERSIONS_STARTSCN VERSIONS_STARTTIME       VERSIONS_ENDSCN VERSIONS_ENDTIME         VERSIONS_XID     VE     EMPNO ENAME
    ----------------- ------------------------- --------------- ------------------------- ---------------- -- ---------- --------------------
             1850518 26-JUN-19 06.57.40 AM                                               09000000FD040000 U        7910 ABC
                                                       1850518 26-JUN-19 06.57.40 AM                               7934 AAA                            7934 AAA

    3. 闪回表到历史版本

    SQLPLUS / AS SYSDBA
    ALTER TABLE SCOTT.EMP ENABLE ROW MOVEMENT;
    FLASHBACK TABLE SCOTT.EMP TO SCN 1850517;
    SELECT * FROM SCOTT.EMP WHERE SAL=1300;
    --执行结果
    sys@ORCL> ALTER TABLE SCOTT.EMP ENABLE ROW MOVEMENT;

    Table altered.

    sys@ORCL> FLASHBACK TABLE SCOTT.EMP TO SCN 1850517; --注意这里的SCN和前面查询的SCN

    Flashback complete.

    sys@ORCL> SELECT * FROM SCOTT.EMP WHERE SAL=1300;

        EMPNO ENAME               JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ----------
         7934 AAA                 CLERK                    7782 1982-01-23 00:00:00       1300                    10

    可见数据已经恢复到指定版本

    参考

    【诗檀学院】ORACLE 11g OCM考试学习材料-手动实操课程

  • 相关阅读:
    学好C++必须要注意的十八个问题
    c++设计模式-----抽象工厂模式
    C++设计模式----工厂模式
    c++设计模式----装饰模式
    常用算法(二)—高级算法
    常用算法收集
    修改admin中App的名称与表的名称
    数据分析画图,使用原生sql查询数据
    组合搜索框的实现
    django前端分页小组件
  • 原文地址:https://www.cnblogs.com/plluoye/p/11097013.html
Copyright © 2011-2022 走看看