oracle的flashback

773281375發表於2014-03-08
1、授予bankuser使用者閃回許可權
grant flashback any table to bankuser;

2、恢復剛刪除的資料
delete from emp where ename='fork';

select ft.start_timestamp,
       ft.commit_timestamp,
       ft.logon_user,
       ft.operation,
       ft.table_name,
       ft.table_owner,
       ft.undo_sql
  from flashback_transaction_query ft
 where table_name = 'EMP';

start_timestamp:執行這條sql語句的時間
commit_timestamp:提交這條sql語句的時間
logon_user:登入資料庫的使用者
operation:進行的操作(增刪改)
table_name:操作表的名字
table_owner:表的擁有者
undo_sql:恢復的sql語句

複製undo_sql語句到sql視窗中執行就可以恢復了

3、恢復資料到某個時間點
恢復前檢視所恢復的時間點資料是否正確:
select * from emp as of timestamp to_timestamp('2014-3-8 14:00:00','yyyy-mm-dd hh24:mi:ss');
恢復資料:
alter table emp enable row movement;
flashback table emp to timestamp to_timestamp('2014-3-8 14:00:00','yyyy-mm-dd hh24:mi:ss');

4、oracle資料庫可以會恢復到什麼時候的資料
要看undo_retention引數
show parameter undo_retention
預設為900秒

5、恢復刪除的表
drop table emp;
flashback table emp to before drop;

6、如何知道哪些表可以恢復
 select * from user_recyclebin order by droptime desc;
或者 select * from recyclebin order by droptime desc;






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

相關文章