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考试学习材料-手动实操课程

  • 相关阅读:
    高德离线地图瓦片坐标偏移纠偏
    CefSharp禁止弹出新窗体,在同一窗口打开链接,或者在新Tab页打开链接,并且支持带type="POST" target="_blank"的链接
    C# .NET的BinaryFormatter、protobuf-net、Newtonsoft.Json以及自己写的序列化方法序列化效率和序列化后的文件体积大小对比
    C# Task 多任务 限制Task并发数量
    C# List 根据对象属性去重的四种方法对比
    WPF使用FlowDocument实现图文混排
    C# List与Dictionary相互转换与高效查找
    Windows服务安装批处理命令
    C# 32位程序 申请大内存
    代码的鲁棒性:链表中倒数第k个结点
  • 原文地址:https://www.cnblogs.com/plluoye/p/11097013.html
Copyright © 2011-2022 走看看