程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle閃回flashback

Oracle閃回flashback

編輯:Oracle教程

Oracle閃回flashback


閃回:修復邏輯錯誤,從當前的點往回退
1.閃回有專門的閃回日志,存放在FIA中,但是只有閃回數據庫會用到

2.如果做全數據庫的閃回,相當於一次不完全恢復

基於時間點的閃回
SQL> flashback table t_wh_prodlib to timestamp to_timestamp('2015-03-03 12:10:07', 'yyyy-mm-dd hh24:mi:ss');
將數據庫閃回到20150303 12:10:07

如果基於時間點的閃回報錯
ERROR at line 1:
ORA-08180: no snapshot found based on specified time

則使用基於時間段的閃回
SQL> flashback table t_wh_prodlib to timestamp systimestamp - interval '27' minute;
將數據庫閃回到27分鐘之前

上面兩個無論哪個報錯ERROR at line 1:

ORA-08189: cannot flashback the table because row movement is not enabled

則輸入以下指令
SQL> alter table t_wh_prodlib enable row movement;

然後在執行上面的閃回語句

====================

其他:
1、閃回刪除 delete
在10g之後,除了超級用戶刪除的時候先放到回收站recyle-bin,同時還將名字改成bin$開頭
刪除一張表格之後再去查詢表格,就會看到以BIN$開頭的文件
> show recyclebin; 查看回收站裡面的內容
> flashback table dodo before drop; 閃回那張表

<1如果回收站裡面有兩個相同的時候,會優先閃回後刪除的
<2如果閃回之前已經有一個同名的,則需要進行重命名
<3如果刪除的時候不想進入回收站,則可以加入參數truge

> purge user_recyclebin; 刪除回收站裡用戶


2、閃回查詢 query
閃回查詢是從undo裡面扣出來的
> select * from t as of timestap to_char('2015-03-03 12:10:07','yyyy-mm-dd hh24:mi:ss');


3、閃回表 table
是從undo裡面扣出來的,這個SYS用戶無法使用
需要開啟行移動,閃回表到之間某個時間點需要
> alter table t enable row movement;
> flashback table t to timestap to_char('2015-03-03 12:10:07','yyyy-mm-dd hh24:mi:ss');


4、閃回數據庫 DB
注意:需要開啟這個功能,然後必須是在歸檔模式,還需要用到閃回日志
如果是第一次設置區域閃回設置,必須先設置大小,再設置時間,必須是在mount狀態下去做
> show parameter recovery 查看大小位置
> show parameter target 查看閃回時間

> select FLASHBACK_ON FROM v$database
這個時候在flash下面的SID下面有個 建議FRA裡面就只留下這個
!!閃回的時候需要在mount下去操作
> flashback database to timestap to_char('2015-03-03 12:10:07','yyyy-mm-dd hh24:mi:ss');


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved