【Flashback】使用Flashback Drop技術閃回被DROP表的指定版本資料
當同一張表被多次DROP後,會在“資料庫回收站”中記錄多個被刪除的版本.這裡我們給出對DROP的指定版本進行恢復的方法和過程。
1.確認資料庫閃回功能是否開啟
sec@ora10g> show parameter recyclebin
NAME TYPE VALUE
------------------ -------------------- ------------------
recyclebin string on
2.初始化環境,模擬同一張表T被三次DROP過程
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> insert into t values (1);
1 row created.
sec@ora10g> commit;
Commit complete.
sec@ora10g> select * from t;
X
----------
1
sec@ora10g> drop table t;
Table dropped.
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> insert into t values (1);
1 row created.
sec@ora10g> insert into t values (2);
1 row created.
sec@ora10g> commit;
Commit complete.
sec@ora10g> select * from t;
X
----------
1
2
sec@ora10g> drop table t;
Table dropped.
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> insert into t values (1);
1 row created.
sec@ora10g> insert into t values (2);
1 row created.
sec@ora10g> insert into t values (3);
1 row created.
sec@ora10g> commit;
Commit complete.
sec@ora10g> select * from t;
X
----------
1
2
3
sec@ora10g> drop table t;
Table dropped.
到此,表T已經被三次DROP,每次DROP之前所包含的資料不相同。
3.使用Flashback技術恢復表到指定版本
1)恢復要求
恢復到T表到包含兩條資料時的版本。
2)獲得回收站中的資訊
(1)第一種方法:查詢RECYCLEBIN內容
sec@ora10g> SELECT OBJECT_NAME, ORIGINAL_NAME, TYPE FROM RECYCLEBIN;
OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ ------------------------ --------
BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0 T TABLE
BIN$o3eq5kyO6g/gQMKQt8Au+g==$0 T TABLE
BIN$o3eq5kyP6g/gQMKQt8Au+g==$0 T TABLE
(2)第二種方法:使用show recyclebin命令
更簡潔地檢視回收站中資訊的方法是使用“show recyclebin”命令
sec@ora10g> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0 TABLE 2011-05-25:20:12:08
T BIN$o3eq5kyP6g/gQMKQt8Au+g==$0 TABLE 2011-05-25:20:11:41
T BIN$o3eq5kyO6g/gQMKQt8Au+g==$0 TABLE 2011-05-25:20:11:10
3)確定T表被drop的三個版本哪個是我們需要恢復的物件
回收站中標識的物件可以透過雙引號引用的方式查詢內容,同時可以結合表T被刪除的時間進行確定。
sec@ora10g> select * from "BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0";
X
----------
1
2
3
sec@ora10g> select * from "BIN$o3eq5kyP6g/gQMKQt8Au+g==$0";
X
----------
1
2
sec@ora10g> select * from "BIN$o3eq5kyO6g/gQMKQt8Au+g==$0";
X
----------
1
可見其中的“BIN$o3eq5kyP6g/gQMKQt8Au+g==$0”是我們需要恢復的目標。
4)對回收站中指定內容進行閃回
sec@ora10g> flashback table "BIN$o3eq5kyP6g/gQMKQt8Au+g==$0" to before drop;
Flashback complete.
5)確認恢復成果
sec@ora10g> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$o3eq5kyO6g/gQMKQt8Au+g==$0 TABLE
BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0 TABLE
T TABLE
sec@ora10g> select * from t;
X
----------
1
2
可見此時T表已經被恢復成功。
4.小結
本文給出了使用Flashback Drop技術閃回指定版本表資料的詳細方法和過程。單就閃回方法來說很簡單,不過重點要放在如何定位回收站中哪個版本是我們需要閃回的目標。
Good luck.
secooler
11.05.25
-- The End --
1.確認資料庫閃回功能是否開啟
sec@ora10g> show parameter recyclebin
NAME TYPE VALUE
------------------ -------------------- ------------------
recyclebin string on
2.初始化環境,模擬同一張表T被三次DROP過程
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> insert into t values (1);
1 row created.
sec@ora10g> commit;
Commit complete.
sec@ora10g> select * from t;
X
----------
1
sec@ora10g> drop table t;
Table dropped.
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> insert into t values (1);
1 row created.
sec@ora10g> insert into t values (2);
1 row created.
sec@ora10g> commit;
Commit complete.
sec@ora10g> select * from t;
X
----------
1
2
sec@ora10g> drop table t;
Table dropped.
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> insert into t values (1);
1 row created.
sec@ora10g> insert into t values (2);
1 row created.
sec@ora10g> insert into t values (3);
1 row created.
sec@ora10g> commit;
Commit complete.
sec@ora10g> select * from t;
X
----------
1
2
3
sec@ora10g> drop table t;
Table dropped.
到此,表T已經被三次DROP,每次DROP之前所包含的資料不相同。
3.使用Flashback技術恢復表到指定版本
1)恢復要求
恢復到T表到包含兩條資料時的版本。
2)獲得回收站中的資訊
(1)第一種方法:查詢RECYCLEBIN內容
sec@ora10g> SELECT OBJECT_NAME, ORIGINAL_NAME, TYPE FROM RECYCLEBIN;
OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ ------------------------ --------
BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0 T TABLE
BIN$o3eq5kyO6g/gQMKQt8Au+g==$0 T TABLE
BIN$o3eq5kyP6g/gQMKQt8Au+g==$0 T TABLE
(2)第二種方法:使用show recyclebin命令
更簡潔地檢視回收站中資訊的方法是使用“show recyclebin”命令
sec@ora10g> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0 TABLE 2011-05-25:20:12:08
T BIN$o3eq5kyP6g/gQMKQt8Au+g==$0 TABLE 2011-05-25:20:11:41
T BIN$o3eq5kyO6g/gQMKQt8Au+g==$0 TABLE 2011-05-25:20:11:10
3)確定T表被drop的三個版本哪個是我們需要恢復的物件
回收站中標識的物件可以透過雙引號引用的方式查詢內容,同時可以結合表T被刪除的時間進行確定。
sec@ora10g> select * from "BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0";
X
----------
1
2
3
sec@ora10g> select * from "BIN$o3eq5kyP6g/gQMKQt8Au+g==$0";
X
----------
1
2
sec@ora10g> select * from "BIN$o3eq5kyO6g/gQMKQt8Au+g==$0";
X
----------
1
可見其中的“BIN$o3eq5kyP6g/gQMKQt8Au+g==$0”是我們需要恢復的目標。
4)對回收站中指定內容進行閃回
sec@ora10g> flashback table "BIN$o3eq5kyP6g/gQMKQt8Au+g==$0" to before drop;
Flashback complete.
5)確認恢復成果
sec@ora10g> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$o3eq5kyO6g/gQMKQt8Au+g==$0 TABLE
BIN$o3eq5kyQ6g/gQMKQt8Au+g==$0 TABLE
T TABLE
sec@ora10g> select * from t;
X
----------
1
2
可見此時T表已經被恢復成功。
4.小結
本文給出了使用Flashback Drop技術閃回指定版本表資料的詳細方法和過程。單就閃回方法來說很簡單,不過重點要放在如何定位回收站中哪個版本是我們需要閃回的目標。
Good luck.
secooler
11.05.25
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-696325/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- flashback技術之---flashback drop
- 【Flashback】Flashback Drop閃回刪除功能實踐
- Flashback Drop閃回刪除功能實踐
- Flashback閃回技術
- 利用flashback閃回表和資料
- flashback總結三之Flashback_DROP
- Flashback Drop閃回刪除功能實踐(基於回收站)
- 閃回之 回收站、Flashback Drop (table、index、trigger等)Index
- flashback query閃回資料
- [Flashback]Flashback Database閃回資料庫實驗Database資料庫
- Oracle閃回技術--Flashback Version QueryOracle
- flashback閃回技術應用解析
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- 【Flashback】啟用Flashback Database閃回資料庫功能Database資料庫
- 【Flashback】Flashback Database閃回資料庫功能實踐Database資料庫
- flashback drop/query/table/database/archiveDatabaseHive
- Flashback Drop的應用與限制
- Flashback Database 閃回資料庫Database資料庫
- 【Flashback】使用檢視快速獲得Flashback Query閃回查詢資料
- Oracle Database 11g閃回技術flashbackOracleDatabase
- 閃回版本查詢(Flashback Version Query)
- oracle 閃回 flashbackOracle
- [閃回特性之閃回版本查詢]Flashback Version Query
- Flashback_oracle閃回功能的使用Oracle
- Oracle回收站及flashback drop(上)Oracle
- Oracle回收站及flashback drop(下)Oracle
- 閃回資料歸檔-- Flashback Data ArchiveHive
- 聊聊閃回版本查詢Flashback Version Query
- FlashBack總結之閃回資料庫與閃回刪除資料庫
- 閃回資料庫(flashback database)知識分享資料庫Database
- 【Mysql】閃回--mysqlbinlog flashback 5.6版本MySql
- [Flashback]開啟資料庫閃回資料庫功能資料庫
- Flashback Query閃回查詢
- Oracle 閃回特性(FLASHBACK DATABASE)OracleDatabase
- 使用flashback query巧妙抽取指定資料
- 【Flashback】11g的閃回資料歸檔初探
- 閃回之 Flashback Query (dml表、過程、函式、包等)、Flashback version Query函式
- flashback技術之---flashback query