Oracle误删除存储过程快速恢复技巧
原创
©著作权归作者所有:来自51CTO博客作者jeames007的原创作品,请联系作者获取转载授权,否则将追究法律责任
作者:IT邦德
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g OCP/OCM、
Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
擅长Oracle数据库运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
文章目录
前言
如果生产上误删除存储过程,在没有备份的情况下,请使用以下方法恢复。
1.找回ID
SELECT obj#
FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2020-07-24 14:30:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE NAME = 'PKG_JEAMES';
注:1.请登录服务器,以sys用户执行
2.PKG_JEAMES为存储过程,或者包
2.通过ID反查
SELECT source
FROM source$ AS
OF TIMESTAMP TO_TIMESTAMP('2020-07-24 14:30:00', 'YYYY-MM-DD HH24:MI:SS')
where obj# = 138324;
3.输出脚本命令
vi flashbak.sql
set echo off;
set feedback off;
set verify off;
set term off;
set trimspool on;
set linesize 3000;
set newpage none;
set heading off;
spool /oracle/scr/wpp.sql; --输出到指定的文件中
@/home/oracle/scr/test.sql;
4.执行脚本恢复
通过以上命令即可立刻恢复误删除的存储过程。