您好,登錄后才能下訂單哦!
利用備份恢復(fù)的第一步就是從備份中還原數(shù)據(jù)文件。
還原數(shù)據(jù)文件的動(dòng)作很簡(jiǎn)單,就是利用操作系統(tǒng)命令將備份的數(shù)據(jù)文件拷貝到數(shù)據(jù)文件的位置。需要注意的是這個(gè)動(dòng)作的準(zhǔn)備動(dòng)作。
首先需要確定哪些數(shù)據(jù)文件需要還原,然后確定合適的備份,這個(gè)備份一般是最近的備份,但也有可能需要從以前的備份恢復(fù)。
在下面的步驟中,為了模擬數(shù)據(jù)庫(kù)打開狀態(tài)下數(shù)據(jù)文件的損壞,使用了Ultraedit修改了USERS表空間的數(shù)據(jù)文件。
SQL> SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM TEST
*
ERROR 位于第 1 行:
ORA-00376: 此時(shí)無法讀取文件 5
ORA-01110: 數(shù)據(jù)文件 5: 'F:ORACLEORADATATESTUSERS01.DBF'
首先查詢V$RECOVER_FILE視圖,這個(gè)視圖中會(huì)包括需要恢復(fù)的數(shù)據(jù)文件的名稱,已經(jīng)數(shù)據(jù)文件的錯(cuò)誤類型。注意,從備份中恢復(fù)的控制文件或通過CREATE CONTROLFILE重新創(chuàng)建的控制文件不會(huì)包含損壞的數(shù)據(jù)文件的信息。
SQL> SELECT * FROM V$RECOVER_FILE;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- -------------------- ---------- -------------------
5 OFFLINE OFFLINE CORRUPT HEADER 1109606706 2006-02-08 02:05:11
然后確定該數(shù)據(jù)文件的物理位置:
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
由于數(shù)據(jù)庫(kù)處于打開狀態(tài),首先將表空間脫機(jī):
SQL> ALTER TABLESPACE USERS OFFLINE IMMEDIATE;
表空間已更改。
SQL> HOST COPY F:ORACLEBACKUPTEST20060207USERS01.DBF F:ORACLEORADATATESTUSERS01.DBF
SQL> RECOVER TABLESPACE USERS;
完成介質(zhì)恢復(fù)。
SQL> ALTER TABLESPACE USERS ONLINE;
表空間已更改。
SQL> SELECT COUNT(*) FROM TEST;
COUNT(*)
----------
6288
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。