Home

2013年11月1日 星期五

Oracle Flashback 10g 的資源回收桶 (recycle bin)

From: Polin Wei
  Oracle 從 9i 開始提供了 Flashback Query 功能,可用於恢復錯誤的 DML 操作。在 Oracle 10g 中對 Flashback Query 做了較大改進,不再局限於 Flashback Query ,還可用於恢復錯誤的 DDL(Drop) 操作。
  Flashback Query  是透過一個新的 Package:DBMS_FLASH 來實現。DBA 可使用 Flashback Query 可以及時取得錯誤操作 DML(Delete、Update、Insert) 在當前某一時間點資料庫的映射視圖,DBA 可以利用系統時間或系統改變號(SCN:System Change Number)來指定這個唯讀視圖,並可以針對錯誤進行相應的恢復措施。
  以下來實作一下整個過程:
1. 可以先用下列 SQL 語法來查詢 recyclebin 是否有被 drop 的 table,此時應該是沒有的。
SQL>select object_name,original_name,operation,type,droptime from recyclebin;
 2. 建立測試的 table : demo_users
create table demo_users (id char(2), name varchar2(10));
insert into demo_users values ('01','David');
insert into demo_users values ('02','Scott');
select * from demo_users;
 可以查詢到有兩筆資料在 demo_users 的資料表( Table )裡。
recyclebin_table_select_ok.png
3. 刪除資料表 demo_users 並在查詢資源回收筒中是否有被刪除的資料表。
SQL>drop table demo_users;
SQL>SELECT object_name,original_name,operation,type,droptime 
FROM recyclebin;
(繼續閱讀...)

沒有留言:

張貼留言