flashback總結三之Flashback_DROP

zhangshengdong發表於2011-11-25
Flashback DROP
  Flashback Drop 是從Oracle 10g 開始出現的, 用於恢復使用者誤刪除的物件(包括表,索引等),
這個技術依賴於Tablespace Recycle Bin(表空間回收站),這個功能和windows的回收站非常類似。
  Flashback 不支援sys使用者. system表空間下的物件,也不能從回收站裡拿到。故使用SYS 或者
SYSTEM使用者登陸時,show recyclebin 為空。
******************************邪惡的分割線*******************************************
個人操作如下:
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是否開啟)
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
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> select count(*) from scott.emp;
  COUNT(*)
----------
        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
---------------- ------------------------------ ------------ -------------------
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表)
SQL> select count(*) from "BIN$RSMM9q+YSJuabEchMfXhxQ==$0";(可以直接檢視)
  COUNT(*)
----------
        14
SQL> flashback table "BIN$RSMM9q+YSJuabEchMfXhxQ==$0" to before drop;(閃回操作)
SQL> select count(*) from emp;
  COUNT(*)
----------
        14
恢復成功

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26446098/viewspace-712045/,如需轉載,請註明出處,否則將追究法律責任。

相關文章