回閃查詢查詢刪除的資料

muxinqing發表於2014-04-07
轉載
oracle回閃技術:代替按時間點恢復
oracle回閃技術提供了一組功能它有效的代替了檢視資料過去的狀態和資料修改前後的狀態而不用要你從備份中還原大部分資料或執行按時間點恢復.回閃技術與介質恢復相比更有效和更小的損壞資料.
大多資料回閃技術功能是在邏輯級別的操作,象檢視和維護資料庫物件
回閃查詢:讓你指定一個目標時間然後執行查詢,來檢視在那個時間出現的查詢結查.為了從一個不想要發生的改變象使用者錯誤的更新一個,使用者可以選擇在出錯前的某個時間點執行查詢來檢索丟失或改變的記錄.

回閃版本查詢:讓你可以查詢在一個指定時間間隔內一個表或多個表永久存的所有記錄的所有版本.象在表上執行的所有更新.也可能檢索行記錄不同版本的後設資料象開始時間,結束時間,進行的操作和這個事務的事務ID建立的版本.這個功能也用來恢復丟失的資料和查詢審計表的改變.

回閃事務查詢:讓你可能檢視由單個事務發生的改變或在一個時間週期內所有事務發生的改變.

回閃表:能讓你將表還原到過去某一個時間點.你能在資料庫聯機的情況下還原表資料,而僅僅回滾你指定的表的資料.

回閃刪除:能拆消drop table語句的影響

回閃表,回閃查詢,回閃事務查詢和回閃版本查詢都是要依賴重做資料.重做資料是用來記錄資料庫中每一個更新操作的資料的.使用它的主要目的是用來給查詢提供一至性讀取和回滾事務。

回閃刪除是建交在一種叫做回收站機制之上的,oracle使用它來管理刪除的資料庫物件,直到回收站空間不足以要給新物件分配空間時才會清除.
查詢一個表的過去狀態可以使用select as of子句來完成.
select *
 from lv_insr_topay
    as of timestamp (sysdate - 40/1440)
    where corp_id=777;--刪除前

    select *
 from lv_insr_topay
    as of timestamp (sysdate - 10/1440)
    where corp_id=777;--刪除後


select *
 from lv_insr_topay
    as of timestamp to_timestamp('2011-12-26 15:00:00','yyyy-mm-dd hh24:mi:ss')
    where corp_id=777;--刪除前

    select *
 from lv_insr_topay
    as of timestamp to_timestamp('2011-12-26 15:09:00','yyyy-mm-dd hh24:mi:ss')
    where corp_id=777;--刪除後


select count(*) from zw2004.gl_pznr versions
  between  timestamp to_timestamp('2012-01-15 10:40:01','yyyy-mm-dd hh24:mi:ss') and
 to_timestamp('2012-01-17 09:50:00','yyyy-mm-dd hh24:mi:ss');
回閃版本查詢

select versions_starttime,versions_endtime, versions_xid,versions_operation,POLICY_CODE,POLICY_VALUE,CENTER_OR_HOSP from fc_biz_policy  versions  between  timestamp to_timestamp('2012-04-19 10:40:01','yyyy-mm-dd hh24:mi:ss') and
 to_timestamp('2012-04-22 09:50:00','yyyy-mm-dd hh24:mi:ss') where policy_code='use_IC'


select * from flashback_transaction_query a where a.table_owner='ZW2004' and a.table_name='GL_PZNR'
回閃事務查詢

回閃刪除掉的表
flashback table jhk_map_center to before drop

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29065182/viewspace-1137294/,如需轉載,請註明出處,否則將追究法律責任。

相關文章