oracle flashback特性(2.2)--Flashback Table之從UNDO中恢復
某些時候,我們要處理的表並不是被意外刪除,而是被反覆修改過多次,希望能回覆到之前的某個時間點,透過前面的學習,你一定會說沒問題啊,藉助flashback query就可以,沒錯,flashback query確實可以,但flashback query只是查詢出記錄,如果想做恢復還需要寫出相應的insert或update,也許還需要相當多的where條件做判斷,一個不甚,可能恢復的資料就是錯誤的。老闆又沒在跟兒前站著,我們沒必要在這個時刻用這種方式展示我們嫻熟的指法,因此,我們需要更高效更嚴謹更簡便的方式:flashback table tbname to scn/timestamp,助你達成夢想,詳情請諮詢,o錯了,應該是詳情請接著往下看。
Scn和timestamp的用法透過前面flashback query的學習大家應該都比較熟了,flashback table中指定scn或timestamp的用法與上相同,舉個例子吧:
有資料如下:
JSSWEB> select *from jss_tb1;
ID VL
---------- --------------------
6 F
7 G
8 H
9 I
11 K
12 L
13 M
14 N
15 O
10 J
記錄下當前系統scn(如果不知道確切的scn,恢復時只能透過時間,但正如前文中講到的,時間並不精確,如果透過指定timestamp恢復的話,需要你清楚瞭解所做的操作大概是在什麼時間)
JSSWEB> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
593480
我們對該表做些操作:
JSSWEB> update jss_tb1 set id=id+100 where id>10;
已更新5行。
JSSWEB> insert into jss_tb1 values (21,'Z');
已建立 1 行。
JSSWEB> delete jss_tb1 where id=8;
已刪除 1 行。
JSSWEB> commit;
提交完成。
JSSWEB> select *from jss_tb1;
ID VL
---------- --------------------
21 Z
6 F
7 G
9 I
111 K
112 L
113 M
114 N
115 O
10 J
已選擇10行。
這些都屬於常規操作,如果最終發現這些操作都屬於誤操作,需要恢復回表最初的形式,藉助flashback query當然可以實現:
JSSWEB> select *from jss_tb1 as of scn 593480;
ID VL
---------- --------------------
6 F
7 G
8 H
9 I
11 K
12 L
13 M
14 N
15 O
10 J
已選擇10行。
查詢能夠寫出來,就一定能將表更新回去,不過既使是針對我們測試時所做過的簡單操作(新增、刪除、修改),更新的語句就已經需要寫的很複雜了,因為我們需要分別判斷新增、刪除、修改過的記錄。
幸好,我們還有flashback table,因此我們只需要指定一個scn或timestamp即可。
JSSWEB> flashback table jss_tb1 to scn 593480;
閃回完成。
JSSWEB> select *from jss_tb1;
ID VL
---------- --------------------
6 F
7 G
8 H
9 I
11 K
12 L
13 M
14 N
15 O
10 J
已選擇10行。
所有記錄均已回覆到指定scn時的狀態。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3907/viewspace-1009373/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 備份恢復之 FlashbackOracle
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive
- 用flashback恢復儲存過程儲存過程
- ORACLE Flashback Query偽列Oracle
- oracle 10g flashback databaseOracle 10gDatabase
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- Oracle閃回技術--Flashback Version QueryOracle
- flashback實現資料快速復原
- 【Flashback】Flashback Drop閃回刪除功能實驗
- Flashback Query(轉)
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- 在Oracle DG Standby庫上啟用flashback database功能OracleDatabase
- ORACLE 閃回檢視v$flashback_database_log/statOracleDatabase
- 2.6.2 Overview of Flashback PDB in a CDBView
- flashback query閃回資料
- Flashback Data Archive原理詳解Hive
- Oracle 12c 新特性之臨時Undo--temp_undo_enabledOracle
- 【FLASHBACK】Oracle閃回及回收站相關語句參考Oracle
- GeminiDB Cassandra介面新特性FLASHBACK釋出:任意時間點秒級閃回
- guarantee restore points-Flashback after RMAN restoreREST
- [20181002]DBMS_FLASHBACK與函式.txt函式
- [20180424]開啟表空flashback on.txt
- 【12c】12c RMAN新特性之recover table(表級別恢復)
- Oracle 12C新特性-RMAN恢復表Oracle
- oracle drop table purge無備份bbed恢復(3/3)Oracle
- oracle drop table purge無備份bbed恢復(1/3)Oracle
- oracle drop table purge無備份bbed恢復(2/3)Oracle
- [20180724]Flashback query和子游標共享.txt
- 基於flashback_scn的expdp匯出
- Flashback Drop閃回刪除功能實踐
- [20210722]ORA-38760與flashback database.txtDatabase
- Flashback database必須要有之前的archivelog嗎?DatabaseHive
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- Oracle資料庫恢復之resetlogsOracle資料庫
- ORACLE DG從庫 Rman備份恢復Oracle
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- Oracle 備份恢復篇之RMAN catalogOracle