zoukankan      html  css  js  c++  java
  • Oracle的闪回操作

    Oracle10g中引入了闪回技术,但这并不意味着所有的表都能闪回成功,当没有足够的磁盘空间,Oracle将使用回收站中的磁盘空间,而且位图连接索引和引用完整性约束也不受回收站的保护。

    recyclebin参数的设置

    show parameter bin       --展示是否使用了闪回技术,默认是使用闪回技术的
    alter session set recyclebin=off;     --在session级别修改
    alter system set recyclebin=off DEFERRED; --不加DEFERRED参数是不允许修改的,但在session一级可以修改,与10g不同

    显示回收站中被删除的表

    show recyclebin

    删除或清空回收站中的表

    purge table table_name;    --删除回收中的一张表
    purge recyclebin;     --清空回收

    恢复被删除的表

    flashback table table_name to before drop;   

    彻底删除表,不放进回收站

    drop table table_name purge;

    闪回错误的DML操作

     在Oracle10g和11g中可以利用还原段中的数据进行恢复

    设置还原段的保留时间

    show parameter undo_retention    --查看保留时间,默认是15分钟
    alter system set undo_retention=7200; --修改保留时

    下面以一个例子来进行说明

    update myemp set sal=9999;                 --将myemp中的员工都变为9999
    
    
    --通过version子句查询以往的事物操作信息,version_xid为事物号,minvalue为最小值,maxvalue为最大值
    select versions_xid,empno,ename,sal
    from myemp versions between scn minvalue and maxvalue where empno=7900;
    结果显示如下图,versions_xid为空,表明我们并未提交所做的DML操作

    commit;     --提交再查询,结果如图:

    conn system/manager
    select operation,START_SCN from flashback_transaction_query where xid=hextoraw('0A00020004050000'); --查找出事物随对应的SCN号

    ---不知道为什么表中显示状态为unknown,按理应该是UPDATE的。
    alter table scott.myemp enable row movement;    --开启表的行移动功能
    flashback table scott.myemp to SCN 1996229; --恢复操作完成

    也可以按照时间点恢复

    flashback table scott.myemp to timestamp to_timestamp('15:36','hh24:mi');
  • 相关阅读:
    delphi xe10 FMX 启动参数
    delphi xe6 JSON 测试
    oracle实现http请求,oracle发送http请求。
    ORACLE存储过程调用Web Service
    新搭建的iis服务器,运行网站报 System.BadImageFormatException:未能加载文件或程序集”....“或它的某一个依赖项。
    c#的http请求工具类核心代码
    vue-cli3 取消关闭eslint 校验代码
    quartz.net数据库持久化教程
    sql备份一张表的数据
    iis 长期无访问导致定时任务不执行的解决方案
  • 原文地址:https://www.cnblogs.com/zydev/p/5300399.html
Copyright © 2011-2022 走看看