rman恢復手冊

1.數據庫全庫恢復

RMAN>restore/revover database ;

例如:

$ rman target /

RMAN> startupmount

RMAN> restoredatabase;

RMAN> recoverdatabase;

RMAN> alterdatabase open;

2.數據庫表空間恢復

RMAN>restore/revover tablespace xx ;

恢復:

如果我們只丟失了特定的表空間的數據文件,那麼我們可以選擇只恢復這個表空間,而不是恢復整個數據庫。表空間恢復可以在不關閉數據庫的情況下進行,只需要將需要恢復的表空間offline

例如:

RMAN> RUN{

sql "altertablespace xx offline immediate;"

restoretablespace xx;

recovertablespace xx;

sql "altertablespace xx online;"

}

恢復到一個不同的位置:

RMAN> RUN{

sql "altertablespace xx offline immediate;"

SET NEWNAME fordatafile 1 to '/xx';

restoretablespace xx;

switch datafile1;

recovertablespace xx;

sql "altertablespace tbs1 online;"

}

3.數據庫只讀表空間的恢復

默認情況下,即使丟失了只讀的數據文件,RMAN 也不會在執行完全數據庫還原操作時候還原只讀的數據文件。要在完全恢復期間還原只讀的數據文件,就必須在RESTORE命令中使用CHECK READONLY 參數:

RMAN> RESTOREDATABASE CHECK READONLY;

4.數據文件的恢復

RMAN>restore/revover datafile 數據文件號(或數據文件名);

數據文件恢復與表空間恢復類似。假設數據文件號爲 5 的文件丟失,文件名是:

'E:/ORACLE/ORADATA/USERS.DBF'那麼我們恢復的時候可以指定文件號,也可以指定文件名。

例如:

RMAN> run {

allocate channeldev1 type disk;

sql "altertablespace users offline immediate";

restore datafile4; --或者 restore 'E:/ORACLE/ORADATA/USERS.DBF'

recover datafile4;

sql "altertablespace users online";

release channeldev1;

}

恢復到一個不同的位置:

$ rman target /

RMAN> startupmount

RMAN> RUN{

sql "altertablespace users offline immediate";

SET NEWNAME fordatafile 9 to '/xx/user01.dbf';

restore datafile9;

switch datafileall;

recover datafile9;

sql "altertablespace users online";

}

5.恢復SPFILE/控制文件

使用自動備份恢復SPFILE/控制文件

RMAN> startupnomount;

RMAN> setdbid=153910023

RMAN> restorecontrolfile from autobackup

RMAN> restorespfile/controlfile to '/xx/xx' from autobackup ;

RMAN> restorecontrolfile from '/arch/ct_c-2347671489-20060630-00';

聯機狀態:目標數據庫MOUNTOPEN

RMAN> restorecontrolfile to 'd:/temp/control01.ctl';

6.歸檔重做日誌的還原

顯示恢復目錄中的歸檔日誌:

RMAN> listbackupset of archivelog all;

一般情況下,在 RMAN 的普通恢復過程中,不必恢復歸檔的重做日誌。不過偶爾也需要恢復重做日誌,例如我們用Log Miner 來從歸檔中查找一些東西。

RMAN命令舉例:

RMAN> RESTOREARCHIVELOG ALL;

RMAN> RESTOREARCHIVELOG FROM LOGSEQ=1 UNTIL LOGSEQ=20;

RMAN> RESTOREARCHIVELOG FROM LOGSEQ=1;

也可以用 SET命令來指定歸檔日誌的還原位置,例如:

RMAN> run

{

set archivelogdestination to "d:/temp";

restorearchivelog all;

}

需要注意的是,即使新的歸檔日誌目錄不同於默認的歸檔日誌目錄,如果 Oracle 判定日誌已存在,也不會恢復該歸檔日誌文件。

7.還原檢查與恢復測試

與備份檢查一樣,還原操作也可以檢查是否能正常restore 或者是否該備份集

是否有效。如::

RMAN> RESTOREDATABASE VALIDATE;

RMAN>VALIDATE BACKUPSET 218;

RMAN> RESTOREDATABASE VALIDATE CHECK LOGICAL ;

從指定的 tag 恢復:

RMAN> RESTOREFROM tag=’xxxx’;

8.不完全恢復的還原:

set untiltime/SCN/

RMAN> restoredatabase until scn 1000;

RMAN>restoredatabase "to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";

RMAN> restoredatabase until sequence 100 thread 1;

例如:

SQL> startupmount;

RMAN> run{

allocate channeld1 type disk;

restore databaseuntil scn 1317011; --或者 set until scn 1317011

recover databaseuntil scn 1317011;

sql 'alterdatabase open resetlogs';

release channeld1;

}

RMAN> run{

set until time"to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";

restoredatabase;

recoverdatabase;

alter databaseopen resetlogs;

}

9.塊級別的恢復

塊恢復Block Media Recovery (BMR),塊是恢復的最小單元,通過塊可以減少恢復時間,而且數據文件可以在線。恢復塊的時候,必須指定具體的塊號,

例如:

RMAN> blockrecoverdatafile 6 block 3;

 

發佈了29 篇原創文章 · 獲贊 5 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章