基于時間的不完全恢複是指當出現了使用者錯誤比如失誤操作 drop table ,truncate table 時,使用備份檔案,歸檔日志和重做日志檔案将資料庫恢複到使用者誤操作點的狀态,進而恢複使用者資料。
實驗步驟如下:
1)先建立一個test表,并插入資料1, 2, 3,送出,切換日志檔案。
SQL> create table t1 (num number) tablespace test;
表已建立。
SQL> insert into t1 values (1);
已建立 1 行。
SQL> commit;
送出完成。
SQL> insert into t1 values (2);
已建立 1 行。
SQL> commit;
送出完成。
SQL> alter system switch logfile;
系統已更改。
SQL> insert into t1 values (3);
已建立 1 行。
SQL> commit;
送出完成。
SQL> alter system switch logfile;
系統已更改。
2)檢視誤操作的時間點. 删除表。
SQL> host date
2010-05-12
SQL> host time
21:16:56'
SQL> drop table t1;
表已删除。
3)關閉資料庫,在使資料庫處于加載狀态
SQL> shut immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 138412948 bytes
Database Buffers 390070272 bytes
Redo Buffers 5844992 bytes
資料庫裝載完畢。
4)複制所有資料檔案備份,為了将資料庫恢複到過去的時間點,必須複制是以資料檔案的備份。
SQL> @f:\sql\recover.sql
注意:當複制備份檔案時,必須確定備份檔案的時間點在恢複時間點之前。可以通過以下查詢擷取備份檔案的時間點:
SQL> select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss') from v$recover_file;
FILE# TO_CHAR(TIME,'YYYY-
---------- -------------------
1 2010-05-10 16:24:02
2 2010-05-10 16:24:02
3 2010-05-10 16:24:02
4 2010-05-10 16:24:02
5 2010-05-10 16:24:02
6 2010-05-10 16:24:02
2010-05-10 16:24:02 小于 '2010-05-12 21:16:56'
SQL> recover database until time '2010-05-12 21:16:56'
ORA-00279: 更改 2442330 (在 05/11/2010 22:40:23 生成) 對于線程 1 是必需的
ORA-00289: 建議: F:\APP\YANG\ARCHIVE2\79_1_715961434.LOG
ORA-00280: 更改 2442330 (用于線程 1) 在序列 #79 中
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
已應用的日志。
完成媒體恢複。
5)以resetlogs方式打開資料庫。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> select * from t1;
NUM
----------
1
2
3 ------------由查詢結果可知 恢複成功。
6)當然執行了resetlogs之後,建議進行資料庫的全備份。
SQL> archive log list
資料庫日志模式 存檔模式
自動存檔 啟用
存檔終點 f:\app\yang\archive2
最早的聯機日志序列 1
下一個存檔日志序列 1
目前日志序列 1
SQL> alter database begin backup;
資料庫已更改。
SQL> @f:\sql\hotbak.sql----關于備份的腳本
SQL> alter database end backup;
資料庫已更改。
SQL> alter database backup controlfile
2 to 'f:\lib\control.ctl' reuse;
資料庫已更改。
SQL> alter system archive log current;------保持一緻性。這一步,有時容易忽略
系統已更改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-662550/,如需轉載,請注明出處,否則将追究法律責任。
轉載于:http://blog.itpub.net/22664653/viewspace-662550/