flashback總結四之Flashback_Query
Flashback Query 是利用多版本讀一致性的特性從UNDO 表空間讀取操作前的記錄資料!
由於例子完整性,演示As of timestamp和As of scn 的示例
個人推薦就使用as of scn,精準性高
1,As of timestamp的例子
******************************個人操作**************************************
SQL> alter session set nls_date_format='YYYY-MM-DD hh24:mi:ss';
會話已更改。
SQL> select sysdate from dual;
SYSDATE
-------------------
2011-11-25 10:24:18
SQL> delete from emp;
已刪除14行。
SQL> select * from emp;
未選定行
SQL> select count(*) from emp as of timestamp sysdate-5/1440;(通過as of timestamp查詢五分鐘之前的資料)
COUNT(*)
----------
14
SQL> select count(*) from emp as of timestamp to_timestamp('2011-11-25 10:24:18'
,'YYYY-MM-DD hh24:mi:ss');(按系統時間查詢)
COUNT(*)
----------
14
SQL> insert into emp select * from emp as of timestamp sysdate-5/1440;(插入以前時間點的資料)
已建立14行。
SQL> select count(*) from emp;
COUNT(*)
----------
14
恢復操作成功!!!!
2,As of scn的例子
********************************個人操作**************************************
SQL> SELECT dbms_flashback.get_system_change_number FROM dual;
SELECT dbms_flashback.get_system_change_number FROM dual
*
第 1 行出現錯誤:
ORA-00904: : 識別符號無效
(它說我有ora-00904的錯誤,原因是我現在還在scott使用者下,所以要轉回sys使用者下)
SQL> connect sys/root as sysdba;
已連線。
SQL> SELECT dbms_flashback.get_system_change_number FROM dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
3361877
SQL> SELECT CURRENT_SCN FROM V$DATABASE;(檢視scn)
CURRENT_SCN
-----------
3361949
SQL> delete from scott.emp;
已刪除14行。
SQL> commit;
提交完成。
SQL> select count(*) from scott.emp as of scn 3361949;(通過scn查詢歷史資料)
COUNT(*)
----------
14
SQL> insert into scott.emp select * from scott.emp as of scn 3361949;(插入歷史資料)
已建立14行。
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
恢復操作成功
flash_query總結:
檢視SCN 和 timestamp 之間的對應關係(如下),
SQL> select * from(select rownum no,scn,to_char(time_dp,'yyyy-mm-dd hh24:mi:ss')
from sys.smon_scn_time)
2 where no>=1 and no<=10;
NO SCN TO_CHAR(TIME_DP,'YY
---------- ---------- -------------------
1 3289317 2011-11-23 16:42:00
2 3289725 2011-11-23 16:52:00
3 3290621 2011-11-23 17:02:01
4 3214377 2011-11-22 14:16:15
5 3291105 2011-11-23 17:12:01
6 3179460 2011-11-19 16:29:43
7 2019804 2011-10-21 14:40:51
8 2020849 2011-10-21 15:00:36
9 3202079 2011-11-22 09:43:36
10 3216623 2011-11-22 15:26:16
已選擇10行。
說明scn和時間有一定的對應關係,對應規則是:每隔5 分鐘,系統產生一次系統時間標記與scn 的匹配
5分鐘的概念就是,在這個時間段點,就有一個scn對應
舉個例子,比如scn:339988,339989 分別匹配11-11-11 13:52:00 和11-11-11 13:57:00,在這個時間段裡面查
找的資料都是11-11-11 13:52:00 時間點的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26446098/viewspace-712049/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- flashback總結三之Flashback_DROP
- flashback總結一之Flashback_DatabaseDatabase
- flashback總結六之Flashback_Transaction_Query
- flashback總結五之Flashback_Query_Version(上)
- flashback總結五之Flashback_Query_Version(下)_補充
- Oracle Flashback 技術 總結Oracle
- Oracle Flashback技術總結Oracle
- flashback總結二之相關的三個檢視
- 四則運算之總結
- oracle flashback特性學習總結Oracle
- flashback database的一點總結Database
- FlashBack總結之閃回資料庫與閃回刪除資料庫
- 字串分組相加方法四之總結字串
- flashback技術之---flashback query
- flashback技術之---flashback drop
- flashback技術之---flashback table
- flashback技術之---flashback databaseDatabase
- flashback技術之---flashback Transaction Query
- flashback技術之---flashback version query
- 四種博弈總結
- NIO(四)channel總結
- 超詳細的Java面試題總結(四 )之JavaWeb基礎知識總結Java面試題Web
- oracle flashback特性(2.1)--Flashback Table之RECYCLEBINOracle
- iOS面試題總結(四)iOS面試題
- RxJava 沉思錄(四):總結RxJava
- Linux效能優化實戰CPU篇之總結(四)Linux優化
- 應用oracle flashback--Flashback Table之RECYCLEBINOracle
- Oracle10g的Flashback之Flashback Transaction QueryOracle
- 【徵文】應用oracle flashback(2.1)--Flashback Table之RECYCLEBINOracle
- java四大引用總結Java
- 四則運算app總結APP
- 第四周總結
- SQL總結(四)編輯類SQL
- 【多執行緒總結(四)-三大性質總結】執行緒
- 全面學習oracle flashback特性(2.1)--Flashback Table之RECYCLEBINOracle
- SQL*Loader的使用總結(四)SQL
- Java 四大域物件總結Java物件
- 暑假第四周總結