標籤:
Grey原文地址:http://www.cnblogs.com/greyzeng/p/5346833.html
?
環境:
- Windows 10 專業版
- Oracle Database 12c Release 1
?
Flashback樣本情境1:
?
建立了一張表t_table1, 在某個時間點插入兩條資料,後續又誤插入一條資料,現在需要恢複到誤插入資料之前的狀態。 |
?
開啟SQL Plus
用普通使用者登入:
?
建立一張表t_table1:
create table t_table1 (t_id number, t_name varchar2(30));
插入兩條資料並提交:
insert into t_table1 values (111,‘hui‘);
insert into t_table1 values (222,‘wq‘);
commit;
在2016年4月2日00:13分左右誤插入一條資料:
insert into t_table1 values (333,‘errordata‘);
commit;
?
接下來恢複到誤差資料之前的情況,
查詢一下誤差入之前的資料情況,由於資料是2016年4月2日00:13分左右插入的,所以查看一下00:10分的表狀態:
select * from t_table1 as of timestamp to_timestamp(‘2016-04-02 00:10‘,‘yyyy-mm-dd hh24:mi‘);
開啟行遷移:
alter table t_table1 enable row movement;
閃回:
flashback table t_table1 to timestamp to_timestamp(‘2016-04-02 00:10‘,‘yyyy-mm-dd hh24:mi‘);
檢查一下,資料已經恢複
?
情境2:
?
建立一張表,誤刪除(drop)了這張表,現在需要恢複這張表。 |
?
接情境1,drop這個表t_table1,
閃回:
flashback table t_table1 to before drop;
驗證:
?
RMAN樣本
?
情境:
?
啟用RMAN備份以後,同時資料庫檔案丟失.DBF,通過RMAN恢複資料檔案。 |
?
說明:
RMAN備份/恢複之前必須要開啟資料庫歸檔功能
在SQL Plus下:
啟動歸檔前先要停止資料庫:
用管理員登入:
conn / as sysdba;
停止資料庫:
shutdown immediate;
資料庫以mount方式啟動:
startup mount;
啟動資料庫歸檔:
alter database archivelog;
改變歸檔日誌路徑,windows系統使用盤符:
alter system set log_archive_dest_1="location=C:\Users\Public\Documents\arch";
開啟資料庫,查看歸檔是否已經開啟:
alter database open;
archive log list;
?
在Windows控制台輸入以下命令啟動RMAN:
rman target/
啟用RMAN備份:
backup database;
此時,類比一下誤刪資料庫檔案:
先關閉資料庫:
刪除:C:\app\orcl\oradata\orcl目錄下的.DBF檔案
重啟RMAN:
RMAN target sys/
利用RMAN恢複資料庫檔案:
資料檔案恢複成功:
Oracle Flashback和RMAN樣本