用flashback恢复存储过程
来源:互联网 发布:js select标签 编辑:程序博客网 时间:2024/04/29 08:03
今天一个朋友问我,删除了一个存储过程是否可以恢复,想了想,恢复存储过程就相当于找到删除过程前SOURCE$表的数据,可以用flashback功能恢复。
下面的测试过程。
首先建立存储过程:
SQL> create or replace procedure p_test is
2 begin
3 null;
4 end p_test;
5 /
Procedure created
SQL> col sysdate format a20
SQL> select sysdate from dual;
SYSDATE
--------------------
2007-7-10 23:50:32
SQL> drop procedure p_test;
Procedure dropped
要恢复存储过程首先需要知道该过程在删除前对应的OBJECT_ID,这个同样也可以用flashback得到。
SQL> SELECT obj# FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2007-7-10 23:50:32', 'YYYY-MM-DD HH24:MI:SS') WHERE NAME='P_TEST';
OBJ#
----------
7346
在实际中,为了更精确得到OBJ#,可能还需要限制所属用户等条件。
要恢复过程,时间就是恢复SOURCE$表在过程被删除前的数据,这个用flashback是可以轻松做到的:
SQL> SELECT * FROM source$ AS OF TIMESTAMP TO_TIMESTAMP('2007-7-10 23:50:32', 'YYYY-MM-DD HH24:MI:SS') where obj#=7346 order by line;
OBJ# LINE SOURCE
---------- ---------- --------------------------------------------------------------------------------
7346 1 procedure p_test is
7346 2 begin
7346 3 dbms_lock.sleep(60);
7346 4 Insert Into x Values(1);
7346 5 Commit;
7346 6 end p_test;
6 rows selected
从上面结果可以看到,存储过程已经恢复。
注意:
1、flashback是9i后才引起的,之前版本不能用这个方法恢复
2、从删除到恢复时的时间间隔不能超过undo_retention的设定值
转载出处:http://space6212.itpub.net/post/12157/306512
- 用flashback恢复存储过程
- [Flashback]Oracle flashback存储过程
- 存储过程恢复
- FLASHBACK恢复技术
- Flashback 恢复技术
- mysql恢复--flashback
- flashback table恢复数据
- Oracle数据恢复--flashback
- 使用flashback恢复数据
- 用Oracle闪回功能(flashback)恢复删除的数据
- 用Oracle闪回功能(flashback)恢复删除的数据
- rac 10.2.0.4 flashback恢复
- oracle数据恢复(flashback)
- 数据库备份与恢复的存储过程
- 通用分页 数据库备份 恢复存储过程
- 备份与恢复的存储过程
- MSSQL备份和恢复存储过程
- SQLSERVER2000备份和恢复存储过程
- 栈随机化
- JS与flash交互通信控制的方法
- Eclipse的UNIT测试工具PLUGIN
- VFP创建Excel新办法
- BIOS详解
- 用flashback恢复存储过程
- MyEclipse10.0各个版本官网下载地址
- Oracle存储大小查看语句
- Dev Guide/Framework Topics/User Interface/Input Events
- android代码设置全屏显示
- 使用JS和jQuery处理和保存Cookie
- lzo-2.03 编译小计
- 在winXP上直接打印图片有点不靠谱
- 2011-01-06【周五】工作