Flashback DROP
Flashback Drop 是从Oracle 10g 开始出现的, 用于恢复用户误删除的对象(包括表,索引等),
这个技术依赖于Tablespace Recycle Bin(表空间回收站),这个功能和windows的回收站非常类似。
这个技术依赖于Tablespace Recycle Bin(表空间回收站),这个功能和windows的回收站非常类似。
Flashback 不支持sys用户. system表空间下的对象,也不能从回收站里拿到。故使用SYS 或者
SYSTEM用户登陆时,show recyclebin 为空。
SYSTEM用户登陆时,show recyclebin 为空。
******************************邪恶的分割线*******************************************
个人操作如下:
C:\Documents and Settings\Administrator>sqlplus "/as sysdba"
个人操作如下:
C:\Documents and Settings\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 11月 25 10:05:09 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> connect sys/root as sysdba;
已连接。
SQL> show parameter recycle(查看recycle是否开启)
已连接。
SQL> show parameter recycle(查看recycle是否开启)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_recycle string
db_recycle_cache_size big integer 0
recyclebin string on
------------------------------------ ----------- ------------------------------
buffer_pool_recycle string
db_recycle_cache_size big integer 0
recyclebin string on
SQL> alter system set recyclebin=off;
系统已更改。
SQL> alter system set recyclebin=on; (两条控制recyclebin的语句)
系统已更改。
系统已更改。
SQL> alter system set recyclebin=on; (两条控制recyclebin的语句)
系统已更改。
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
----------
14
SQL> drop table scott.emp;
表已删除。
SQL> show recyclebin;
(没有任何内容,这是对的,原因是Flashback 不支持sys用户. system表空间下的对象有recycle)
切换到普通用户;
SQL> connect scott/tiger;
已连接。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
(没有任何内容,这是对的,原因是Flashback 不支持sys用户. system表空间下的对象有recycle)
切换到普通用户;
SQL> connect scott/tiger;
已连接。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
BONUS BIN$vnXMfk0VRkatWA7zjgYTCw==$0 TABLE 2011-11-19:09:44:34
BONUS BIN$DHfhSw36QLCAHKp3ePaBYA==$0 TABLE 2011-11-19:09:42:11
DEPT BIN$WP4KUX6wSz2KPcEvdDETkQ==$0 TABLE 2011-11-19:09:44:34
DEPT BIN$QvSau6UMR4qsEcnVm8OIUg==$0 TABLE 2011-11-19:09:42:12
EMP BIN$RSMM9q+YSJuabEchMfXhxQ==$0 TABLE 2011-11-25:10:06:26
EMP BIN$qSL3MNWsRAiXyCvsP11RaQ==$0 TABLE 2011-11-19:09:44:34
EMP BIN$T3q718WoSTyISvG7v/fZ4g==$0 TABLE 2011-11-19:09:42:12
SALGRADE BIN$ZtMuOD7LReyrFLcyBTaPrg==$0 TABLE 2011-11-19:09:44:34
SALGRADE BIN$bZ5ep4dMTDClhmw5xnzhWQ==$0 TABLE 2011-11-19:09:42:12
STUDENT BIN$abihhQA0TCa9NWS3QGbuEw==$0 TABLE 2011-10-25:11:17:32
(这里可以看到回收站里面的所有以前drop的表,可以根据时间和表名,知道25号是刚刚我们删除的emp表)
(这里可以看到回收站里面的所有以前drop的表,可以根据时间和表名,知道25号是刚刚我们删除的emp表)
SQL> select count(*) from "BIN$RSMM9q+YSJuabEchMfXhxQ==$0";(可以直接查看)
COUNT(*)
----------
14
----------
14
SQL> flashback table "BIN$RSMM9q+YSJuabEchMfXhxQ==$0" to before drop;(闪回操作)
SQL> select count(*) from emp;
COUNT(*)
----------
14
----------
14
恢复成功
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26446098/viewspace-712045/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26446098/viewspace-712045/