Flashback Query恢復誤刪除資料(轉)
先確認資料庫的SCN變化:
現有資料:
建立恢復表
選擇SCN向前恢復
嘗試多個SCN,獲取最佳值(如果能得知具體時間,那麼可以獲得準確的資料閃回)
SQL> select count(*) from hs_passport as of scn &scn; Enter value for scn: 12929941968 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12929941968 COUNT(*) ---------- 861684 SQL> / Enter value for scn: 12927633776 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12927633776 select count(*) from hs_passport as of scn 12927633776 * ERROR at line 1: ORA-01466: unable to read data - table definition has changed SQL> / Enter value for scn: 12929928784 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12929928784 COUNT(*) ---------- 825110 SQL> / Enter value for scn: 12928000000 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12928000000 select count(*) from hs_passport as of scn 12928000000 * ERROR at line 1: ORA-01466: unable to read data - table definition has changed
最後選擇恢復到SCN為12929941968的時間點
SQL> col fscn for 9999999999999999999 SQL> col nscn for 9999999999999999999 SQL> select name,FIRST_CHANGE# fscn,NEXT_CHANGE# nscn,FIRST_TIME from v$archived_log; ................... NAME FSCN NSCN FIRST_TIME ------------------------------ -------------------- -------------------- ------------------- /mwarch/oracle/1_52413.dbf 12929941968 12929942881 2005-06-22 14:38:28 /mwarch/oracle/1_52414.dbf 12929942881 12929943706 2005-06-22 14:38:32 /mwarch/oracle/1_52415.dbf 12929943706 12929944623 2005-06-22 14:38:35 /mwarch/oracle/1_52416.dbf 12929944623 12929945392 2005-06-22 14:38:38 /mwarch/oracle/1_52417.dbf 12929945392 12929945888 2005-06-22 14:38:41 /mwarch/oracle/1_52418.dbf 12929945888 12929945965 2005-06-22 14:38:44 /mwarch/oracle/1_52419.dbf 12929945965 12929948945 2005-06-22 14:38:45 /mwarch/oracle/1_52420.dbf 12929948945 12929949904 2005-06-22 14:46:05 /mwarch/oracle/1_52421.dbf 12929949904 12929950854 2005-06-22
當前的SCN為:
SQL> select dbms_flashback.get_system_change_number fscn from dual; FSCN -------------------- 12930142214
使用應用使用者嘗試閃回
SQL> connect username/password Connected. |
現有資料:
SQL> select count(*) from hs_passport; COUNT(*) ---------- 851998 |
建立恢復表
SQL> create table hs_passport_recov as select * from hs_passport where 1=0; Table created. |
選擇SCN向前恢復
SQL> select count(*) from hs_passport as of scn 12929970422; COUNT(*) ---------- 861686 |
嘗試多個SCN,獲取最佳值(如果能得知具體時間,那麼可以獲得準確的資料閃回)
SQL> select count(*) from hs_passport as of scn &scn; Enter value for scn: 12929941968 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12929941968 COUNT(*) ---------- 861684 SQL> / Enter value for scn: 12927633776 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12927633776 select count(*) from hs_passport as of scn 12927633776 * ERROR at line 1: ORA-01466: unable to read data - table definition has changed SQL> / Enter value for scn: 12929928784 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12929928784 COUNT(*) ---------- 825110 SQL> / Enter value for scn: 12928000000 old 1: select count(*) from hs_passport as of scn &scn new 1: select count(*) from hs_passport as of scn 12928000000 select count(*) from hs_passport as of scn 12928000000 * ERROR at line 1: ORA-01466: unable to read data - table definition has changed
最後選擇恢復到SCN為12929941968的時間點
SQL> insert into hs_passport_recov select * from hs_passport as of scn 12929941968; 861684 rows created. SQL> commit; Commit complete.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23757700/viewspace-719993/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- flashback query和logmnr用於恢復資料的誤刪除(轉)
- 使用Oracle9i的新特性Flashback Query恢復誤刪除資料(轉eygle)Oracle
- oracle恢復誤刪除資料Oracle
- flashback database 恢復誤刪除的表空間。Database
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- Oracle閃回刪除恢復誤刪資料Oracle
- Flashback Query 針對DML誤操作的恢復
- Oracle資料恢復 - Linux / Unix 誤刪除的檔案恢復(轉)Oracle資料恢復Linux
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- 誤刪除資料了怎麼辦?小編交易誤刪除資料的恢復方法
- MySQL資料庫表誤刪除恢復(一)MySql資料庫
- Oracle恢復誤刪除的資料檔案Oracle
- truncate table 誤刪除資料後的恢復
- 誤刪除儲存SqlServer資料庫資料恢復SQLServer資料庫資料恢復
- FLASHBACK DATABASE可以恢復刪除的TABLESPACEDatabase
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 恢復Oracle資料庫誤刪除資料的語句Oracle資料庫
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 誤刪除ESXi虛擬機器資料恢復虛擬機資料恢復
- 【伺服器資料恢復】伺服器誤刪除lun如何恢復資料?伺服器資料恢復
- Oracle恢復誤刪資料Oracle
- mysql誤刪資料恢復MySql資料恢復
- 【伺服器資料恢復】LINUX誤刪除、誤格式化怎麼恢復資料?伺服器資料恢復Linux
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- linux中誤刪除oracle資料檔案的恢復操作(轉)LinuxOracle
- 【虛擬化資料恢復】KVM虛擬機器誤刪除資料恢復案例資料恢復虛擬機
- 【儲存資料恢復】HP EVA儲存誤刪除VDISK的資料恢復案例資料恢復
- 【儲存資料恢復】NetApp儲存誤刪除的資料恢復案例資料恢復APP
- 【伺服器資料恢復】伺服器誤刪除卷怎麼恢復資料伺服器資料恢復
- 【伺服器資料恢復】LINUX誤刪除、格式化的資料恢復伺服器資料恢復Linux
- 【伺服器資料恢復】EMC Unity儲存誤刪除的資料恢復案例伺服器資料恢復Unity
- 【儲存資料恢復案例】Netapp誤操作刪除lun的資料恢復資料恢復APP
- 伺服器資料恢復—EMC儲存資料卷被誤刪除如何恢復資料?伺服器資料恢復
- 使用閃回查詢恢復誤刪除的資料
- 【EM】資料表誤刪除故障模擬及恢復
- linux下恢復誤刪除的資料檔案Linux
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 【NetApp資料恢復案例】針對NetApp誤刪除資料的恢復APP資料恢復