数据库-Oracle-数据恢复(删除数据恢复、存储过程恢复)

复杂的故事简单说,复杂的问题简单做,您好,这里是简露一手,欢迎浏览。

概述


1:数据不小心删除怎么办?
2:存储过程、函数多次编译错了怎样办?

删除

关键点


闪回。

方法


  • 删除的数据恢复:
    例如:找回User表1个小时前删除的数据。
    create table tmp_161228_user as
    select * from User as of timestamp sysdate-1/24;
    表tmp_161228_user 就是1个小时前的数据。

sysdate-1/24 可以写具体的时间,如找回2016-12-28 22:10:01的数据则select * from User as of timestamp to_timestamp('2016-12-28 22:10:01','yyyy-mm-dd hh24:mi:ss');

  • 删除、修改的存储过程(还有包或函数):
    例如恢复TEST用户下存储过程SP_UP_ADDR

create table tmp_161228_sp_up_addr as
SELECT * FROM ALL_SOURCE AS OF TIMESTAMP TO_TIMESTAMP ('2016-12-28 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE OWNER='TEST' AND NAME ='SP_UP_ADDR'

存储过程一般编译次数频繁,可以取多个时间段的存储过程数据来得到准确的结果。

注:ALL_SOURCE是系统视图,针对其恢复需要DBA权限,如果没有DBA权限账号 , 可以找管理员在后台用SYS账户执行, 然后查询 SYS.tmp_161228_sp_up_addr表得到相应时间点的存储过程数据。

提点


失误:凡人操作,总有失误。而数据操作的删除失误往往是致命的,导致的结果大到能使整个系统瘫痪。
防范:通常的防范手段是备份,误删后从备份中取数据进行恢复,但备份需要额外的消耗和额外的程序处理,备份需要考虑的情况多,需要专业的人专业处理才有效果。
或许:不是专业的人,误删的时候,若能默默的恢复,弥补过错,总是好的。

简单应用,希望对你有用。

<small>条件:Oracle10或以上版本且打开了闪回。</small>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,124评论 19 139
  • 文章来源:https://blog.movekj.com/?p=1049 数据库备份 数据库备份的目的是为了防止由...
    油菜花的ID阅读 8,172评论 0 1
  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 9,047评论 0 7
  • 语 句 功 能 数据操作 SELECT——从数据库表中检索数据行和列INSERT——向数据库表添加新数据行DELE...
    戰敭阅读 10,522评论 0 53
  • 对于一个大四即将步入社会的学生来说,相信有很多学生都会有和我一样的迷茫和不安。 脱离学校便宜的住宿,吃不到...
    布吉岛lala阅读 1,049评论 0 0

友情链接更多精彩内容