對錶誤操作的閃回恢復--flashback_transaction_query檢視
對誤刪的表記錄,只要沒有truncate語句,就可以根據事務的提交時間進行選擇恢復,一般步驟有:
1、先從flashback_transaction_query檢視裡查詢,檢視提供了供查詢用的表名稱、事務提交時間、UNDO_SQL等欄位。注意:11g檢視到UNDO_SQL為空,是因為
Oracle11g禁用了supplemental logging
開啟後恢復正常:
alter database add supplemental log data;
SQL> alter database add supplemental log data;
如:select * from flashback_transaction_query where table_name='TEST';
select START_SCN,START_TIMESTAMP,COMMIT_SCN,COMMIT_TIMESTAMP,UNDO_CHANGE#,TABLE_NAME,TABLE_OWNER,UNDO_SQL from flashback_transaction_query where table_name='EMP2' order by COMMIT_TIMESTAMP desc
2、執行表記錄恢復
一般先根據時間進行查詢,查詢語句模式為select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點
如select * from scott.test as of timestamp to_timestamp('2009-12-11 20:53:57','yyyy-mm-dd hh24:mi:ss');
select * from emp2 as of scn 699992;-------這個是COMMIT_SCN的值
若有資料,恢復極為簡單了,語句為flashback table tb to timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss');
如flashback table scott.test to timestamp to_timestamp('2009-12-11 20:47:30','yyyy-mm-dd hh24:mi:ss');
flashback table emp2 to scn 699992;
如果是誤update,而且提交。(update emp2 set comm=700 where deptno=10),閃回時,執行上一個時間段的時間或者scn。我這裡是703623,703654是查到update提交後的值
select * from emp2 as of scn 703623;-------這個是COMMIT_SCN的值
flashback table emp2
to scn 699992;
無刪除
delete from emp2 where deptno=30; 閃回到改sql語句COMMIT_SCN的值,才是正確的。和update有區別。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29893219/viewspace-1851421/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用undo的閃回特性恢復錯誤操作的表
- 【Flashback】使用閃回功能快速恢復使用者的誤操作
- 閃回查詢恢復誤刪資料
- oralce恢復誤刪除的表中的資料(閃回、閃回查詢)
- 【DB寶43】MySQL誤操作閃回恢復利器之my2sqlMySql
- Oracle閃回刪除恢復誤刪資料Oracle
- Oracle閃回恢復區Oracle
- 使用閃回查詢恢復誤刪除的資料
- 閃回 錯誤的DML 操作
- (f)--閃回恢復區-- 並行載入對閃庫的影響並行
- Flashback Query 針對DML誤操作的恢復
- 【備份恢復】 閃回技術之閃回刪除
- Oracle -- 閃回恢復區---實踐1---閃回庫Oracle
- Oracle DBA2 ---- 閃回恢復Oracle
- 閃回查詢恢復過程
- 【備份恢復】閃回技術之閃回版本查詢
- Oracle資料庫的閃回恢復區Oracle資料庫
- oracle 閃回基於時間的恢復Oracle
- 【備份恢復】閃回資料庫(一)閃回資料庫的管理資料庫
- Orcale利用閃回功能恢復資料
- 【MySQL】恢復誤操作的方法MySql
- (f)--閃回恢復區---實踐2---閃回表(閃回DML部分資料會用到閃回查詢)
- 閃回恢復一個表中的資料
- 【備份恢復】 閃回技術之閃迴歸檔
- Mysql update誤操作恢復MySql
- Oracle procedure,package,function,triger 閃回 恢復OraclePackageFunction
- [z] 利用閃回恢復被覆蓋的Oracle PACKAGE包OraclePackage
- 【備份恢復】閃回資料庫(五)RMAN 命令列閃回資料庫資料庫命令列
- 【備份恢復】閃回資料庫(二) 基於 SCN 閃回資料庫資料庫
- Oracle10g閃回恢復區詳解--開啟,設定閃回區Oracle
- Oracle10g閃回恢復區詳解Oracle
- 表資料被誤操作的恢復
- Oracle恢復誤操作刪除掉的表Oracle
- Oracle閃回功能恢復偶然丟失的資料(轉)Oracle
- 用Oracle閃回功能恢復偶然丟失的資料Oracle
- 【備份恢復】 閃回技術之閃回事務處理查詢
- Oracle閃回查詢恢復delete刪除資料Oracledelete
- 利用日誌挖掘 oracle 不完全恢復 恢復誤刪除的表/資料/檢視等Oracle