恢復之還原資料檔案

達芬奇的夢發表於2017-03-29

利用備份恢復的第一步就是從備份中還原資料檔案。


還原資料檔案的動作很簡單,就是利用作業系統命令將備份的資料檔案複製到資料檔案的位置。需要注意的是這個動作的準備動作。

首先需要確定哪些資料檔案需要還原,然後確定合適的備份,這個備份一般是最近的備份,但也有可能需要從以前的備份恢復。

在下面的步驟中,為了模擬資料庫開啟狀態下資料檔案的損壞,使用Ultraedit修改了USERS表空間的資料檔案。

SQL> SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM TEST
*
ERROR 位於第 1 行:
ORA-00376: 此時無法讀取檔案 5
ORA-01110: 資料檔案 5: 'F:ORACLEORADATATESTUSERS01.DBF'

首先查詢V$RECOVER_FILE檢視,這個檢視中會包括需要恢復的資料檔案的名稱,已經資料檔案的錯誤型別。注意,從備份中恢復的控制檔案或透過CREATE CONTROLFILE重新建立的控制檔案不會包含損壞的資料檔案的資訊。

SQL> SELECT * FROM V$RECOVER_FILE;

FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- -------------------- ---------- -------------------
5 OFFLINE OFFLINE CORRUPT HEADER 1109606706 2006-02-08 02:05:11

然後確定該資料檔案的物理位置:

SQL> SELECT D.NAME, T.NAME AS TABLESPACE_NAME
2 FROM V$DATAFILE D, V$TABLESPACE T
3 WHERE T.TS# = D.TS#
4 AND D.FILE# = 5;

NAME TABLESPACE_NAME
---------------------------------------- ------------------------------
F:ORACLEORADATATESTUSERS01.DBF USERS

由於資料庫處於開啟狀態,首先將表空間離線:

SQL> ALTER TABLESPACE USERS OFFLINE IMMEDIATE;

表空間已更改。

SQL> HOST COPY F:ORACLEBACKUPTEST20060207USERS01.DBF F:ORACLEORADATATESTUSERS01.DBF

SQL> RECOVER TABLESPACE USERS;
完成介質恢復。
SQL> ALTER TABLESPACE USERS ONLINE;

表空間已更改。

SQL> SELECT COUNT(*) FROM TEST;

COUNT(*)
----------
6288

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

相關文章