zoukankan      html  css  js  c++  java
  • Oracle闪回恢复误删除的表、存储过程、包、函数...

    在日常的数据库开发过程汇总难免会出现一些误删除的动作,

    对于一些误删的操作我们可以通过oracle提供的闪回机制恢复误删数据,

    从而避免出现较大的生产事故.

    下面是本人平时工作中积累的一些常用的操作,非常简单实用,分享给大家.

    恢复dml误删的数据:

    select * from  误删除的表名 as of timestamp(systimestamp-interval '10' minute);--此处的10代表10分钟前表中的数据,可以根据实际情况进行查询

    恢复drop掉的存储过程、函数、包等:

    select *
    from (select u.name AS username,
    o.name AS procedurename,
    decode(o.type#,
    7,
    'PROCEDURE',
    8,
    'FUNCTION',
    9,
    'PACKAGE',
    11,
    'PACKAGE BODY',
    12,
    'TRIGGER',
    13,
    'TYPE',
    14,
    'TYPE BODY',
    'UNDEFINED') AS sptype,
    s.line AS LINE,
    s.source codetext
    from sys.obj$ o, sys.source$ s, sys.user$ u
    where o.obj# = s.obj#
    and o.owner# = u.user#
    and (o.type# in (7, 8, 9, 11, 12, 14) OR
    (o.type# = 13 AND o.subname is null))
    and u.name = '数据库用户名需要大写') as of timestamp(systimestamp - interval '21' minute) --按照时间进行闪回操作 此处为21分钟前的状态
    where sptype = 'PROCEDURE'; --也可以单独查询FUNCTION、PACKAGE等

    备注:如果以上代码看不懂,可以动手查询一下,效果一目了然。

  • 相关阅读:
    Docker端口映射实现
    Docker容器访问控制
    Docker配置 DNS
    Docker快速配置指南
    Docker外部访问容器
    Docker容器如何互联
    Docker 备份、恢复、迁移数据卷
    19.30内置登录处理
    18.29SSM基础整合开发
    19.30内置登录处理
  • 原文地址:https://www.cnblogs.com/LoveShare/p/10251729.html
Copyright © 2011-2022 走看看