码迷,mamicode.com
首页 > 数据库 > 详细

Oracle闪回恢复误删除的表、存储过程、包、函数...

时间:2019-01-10 19:27:02      阅读:571      评论:0      收藏:0      [点我收藏+]

标签:sel   dml   decode   time   procedure   user   RoCE   Owner   from   

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

对于一些误删的操作我们可以通过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等

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

 

Oracle闪回恢复误删除的表、存储过程、包、函数...

标签:sel   dml   decode   time   procedure   user   RoCE   Owner   from   

原文地址:https://www.cnblogs.com/LoveShare/p/10251729.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!