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

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

概述


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

数据库-Oracle-数据恢复(删除数据恢复、存储过程恢复)_第1张图片
删除

关键点


闪回。

方法


  • 删除的数据恢复:
    例如:找回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表得到相应时间点的存储过程数据。

提点


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

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

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

你可能感兴趣的:(数据库-Oracle-数据恢复(删除数据恢复、存储过程恢复))