熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

用Flashback功能恢復表中數據

2013-11-13 15:32:44  來源: Oracle 
這裡只羅列出利用Oracle i R的flashback功能來恢復一下某表中的數據的步驟其實很簡單
 
  首先如果數據庫在歸檔模式下我們可以通過查詢v$archived_log視圖來查看各個歸檔日志所屬的檢查點
 
  select namefirst_change#next_change#first_time from v$archived_log
 
  通過包dbms_flashbackget_system_change_number來獲得數據庫的SCN號當然如果你的數據庫是g的話還可以查看v$database中的字段current_scn
 
  select dbms_flashbackget_system_change_number from dual
 
  select count(*) from student 看看我們的表中的數據有多少
 
  create table student_recovery
 
  as
 
  select * from student where =
 
  來創建恢復表的結構
 
  開始我們的閃回查詢
 
  選擇一個前面的SCN進行向前恢復
 
  select count(*) from student as of scn
 
  嘗試多個scn來獲得我們所期望的結構
 
  最後通過
 
  insert into student_recovery select * from student as of scn commit
 
  來恢復我們表中的數據
 
  還有一點需要我們注意的是什麼呢?
 
  就是smon_scn_time這個表這個表記錄了Oracle數據庫的系統表用以進行輔助的恢復等功能這個表在iR的時候是每分鐘刷新一次而且smon_scn_time會記錄天的數據也就是行記錄因此在OracleiR表屬性修改時間和flashback時間差至少應為分鐘否則會報ora的錯誤
From:http://tw.wingwit.com/Article/program/Oracle/201311/16888.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.