絕世好文:
轉(zhuǎn)自:[url]http://blog.csdn.net/managergh/archive/2007/03/06/1521944.aspx[/url]
1 列出對應(yīng)物
RMAN>list incarnation;
2 列出備份
2.1概述可用的備份 RMAN>list backup summary;
B 表示 backup
F 表示 FULL
A 表示 archive log
0 1 表示 incremental backup
S 說明備份狀態(tài) (A AVAILABLE X EXPIRED )
2.2按備份類型列出備份 RMAN>list backup by file;
按照 數(shù)據(jù)文件備份,歸檔日志備份,控制文件備份,服務(wù)器參數(shù)文件備份 列出
2.3列出詳細(xì)備份 RMAN>list backup;
2.4列出過期備份 RMAN>list expired backup;
2.5列出表空間和數(shù)據(jù)文件備份
list backup of tablespace 和list backup of datafile 輸出和list backup 相似
如:list backup of tablespace user_tbs;
list backup of datafile 3;
2.6列出歸檔日志備份 RMAN>list archivelog all; 簡要信息
RMAN>list backup of archivelog all; 詳細(xì)信息
2.7列出控制文件和服務(wù)器參數(shù)文件
RMAN>list backup of controlfile;
RMAN>list backup of spfile;
=====================================================
=====================================================
RMAN 的 report命令 1. 報告最近沒有被備份的數(shù)據(jù)文件
RMAN>report need backup days=3;
2. 報告?zhèn)浞萑哂嗷蚧謴?fù)窗口
RMAN>report need backup redundancy=2;
RMAN>report need backup recovery window of 2 days;
3. 報告數(shù)據(jù)文件的不可恢復(fù)操作
RMAN>report unrecoverable;
4. 報告數(shù)據(jù)庫模式
RMAN>report schema;
5. 報告丟棄的備份
如果使用了保存策略,備份會標(biāo)記為丟棄狀態(tài) RMAN>report obsolete; 刪除丟棄狀態(tài)備份RMAN>delete obsolete;
=====================================================
=====================================================
RMAN的crosscheck 命令 1 備份集有兩種狀態(tài)A(Available,RMAN認(rèn)為該項存在于備份介質(zhì)上)X(Expired,備份存在于控制文件或恢復(fù)目錄中,但是并沒有物理存在于備份介質(zhì)上)
2 crosscheck 的目的是檢查RMAN 的目錄以及物理文件,如果物理文件不存在于介質(zhì)上,將標(biāo)記為Expired。如果物理文件存在,將維持Available。如果原先標(biāo)記為Expired 的備份集再次存在于備份介質(zhì)上(如恢復(fù)了損壞的磁盤驅(qū)動器后),crosscheck將把狀態(tài)重新從Expired標(biāo)記回Available。
3 crosscheck 輸出分兩部分。第一部分列出確定存在于備份介質(zhì)上的所有備份集片,第二部分列出不存在于備份介質(zhì)上的備份集片,并將其標(biāo)記為Expired。當(dāng)設(shè)置備份保存策略后,一個備份過期,crosscheck之后標(biāo)記為丟棄的備份狀態(tài)依舊為availabel,要刪除丟棄備份delete obsolete。
4 示例:
crosscheck backup
crosscheck backup of datafile 1;
crosscheck backup of tablespace users;
crosscheck backup of controfile;
crosscheck backup of controlfile;
crosscheck backup tag='SAT_BACKUP';
crosscheck backup completed after 'sysdate - 2'
crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
crosscheck backup device type sbt;
crosscheck archivelog all;
crosscheck archivelog like '%ARC00012.001'
crosscheck archivelog from sequence 12;
crosscheck archivelog until sequence 522;
=====================================================
=====================================================
RMAN 的validate 命令 1 validate 命令驗證備份集片是否能夠被還原
2 list backup summary; 得到了備份集得主鍵ID如40,然后validate backupset 40;
=====================================================
=====================================================
RMAN 的備份保存策略以及change ,delete命令 0.帶delete參數(shù)的change 命令刪除備份集,從備份介質(zhì),并且從控制文件和恢復(fù)目錄中刪除。
change backupset 117,118 delete;
change backuppiece 1304 delete;
change archivelog until logseq =544 delete;
1.兩類策略:恢復(fù)窗口備份保存策略(recovery windows backup retension policy) 基于時間
備份冗余備份保存策略(backup redundancy backup retension policy) 基于備份的數(shù)量
兩類策略互相排斥
2.即使使用了備份保存策略,備份到期并不刪除,只是在RMAN目錄中標(biāo)記為丟棄,看到的狀態(tài)依舊為available;
要查看標(biāo)記為丟棄的備份 report obsolete,只有使用delete obsolete才真正物理刪除。
3.configure retension policy to recovery window of 7 days;
configure retension policy to redundancy 3;
顯示結(jié)果 show all;
4.查看到期丟棄的備份時,可能需要手工保存一些備份 ,可以使用change 命令帶keep 參數(shù),使用這個命令后,那些被修改的備份將被認(rèn)為是個long-term backup,不在受保存策略影響也就是說delete obsolete 也不刪除。
5.要使備份時候不受保存策略影響 ,使用帶keep參數(shù)的backup 命令
backup database keep forever;
backup database keep 5 days;
6.change 命令功能
可以修改備份為永久保存并將以及該備份的相關(guān)的日志保存下來,保證總能將備份恢復(fù)到當(dāng)前時間點
change backupset 31 keep forever logs;
可以設(shè)置備份丟棄的新日期 ,將備份在多保存7 天,7 天后將刪除
change backupset 32 keep until time 'sysdata + 7' logs;
7.change 可以將備份集設(shè)置為unavailable
change backupset 33 unavailable;
標(biāo)記為unavailable狀態(tài)的備份集并不參與crosscheck;
=====================================================
=====================================================
恢復(fù)目錄的記錄刪除 1. $ORACLE_HOME/rdbms/admin/prgrmanc.sql 腳本定期刪除恢復(fù)目錄中具有DELETED狀態(tài)的記錄
2. 要刪除舊的對應(yīng)物記錄incarnation.必須從DBINC 表中刪除這些對應(yīng)物,使用RC_DATABASE_INCARNATION 視圖來確定要刪除的對應(yīng)物。記錄要刪除的每個對應(yīng)物的DBINC_KEY
隨后啟動SQL*Plus,執(zhí)行delete from dbinc where dbinc_key=2;
=====================================================
=====================================================
手工同步恢復(fù)目錄 resync catalog;
Oracle同步恢復(fù)目錄的時候,首先創(chuàng)建快照控制文件,然后比較這個文件和恢復(fù)目錄,完成后,Oracle 更新恢復(fù)目錄,使恢復(fù)目錄和控制文件同步
=====================================================
=====================================================
在RMAN 中存儲腳本 1,連接到目標(biāo)數(shù)據(jù)庫和恢復(fù)目錄
rman target / catalog rman/rman@rman9i
2,創(chuàng)建腳本
RMAN>create script my_bk_script
2>{backup database plus archivelog;}
create script my_bk_script
3,打印腳本
RMAN>print script my_bk_script;
printing stored scipt:my_bk_script
{backup database plus archivelog;}
4,運行這個腳本,備份目標(biāo)數(shù)據(jù)庫
RMAN>run {execute scipt my_bk_script;}
5 刪除腳本
RMAN>delete script my_bk_script;
=====================================================
=====================================================
archivelog模式下的完全恢復(fù) step1:set oracle_sid=recover
rman target rman_backup/password
configure controlfile autobackup on;
step2:backup database plus archivelog delete input;
step3:shutdown immediate;
step4:重命名所有的數(shù)據(jù)文件和控制文件,不重命名聯(lián)機重做日志。
step5: startup nomount;
set DBID=****
restore controlfile from autobackup;
alter database mount;
step6: restore database;
recover database;
alter database open resetlogs;
表空間恢復(fù)
sql"alter tablespace users offline";
sql"alter tablespace tools offline";
restore tablespace users,tools;
recover tablespace users,tools;
sql"alter tablespace users online";
sql"alter tablespace tools online";
數(shù)據(jù)文件恢復(fù)
sql"alter database datafile 3 offline";
sql"alter database datafile 'd:oracleoradatausers01.dbf' offline";
restore datafile 3
restore datafile 'd:oracleoradatausers01.dbf';
recover datafile 3
recover datafile 'd:oracleoradatausers01.dbf';
sql"alter database datafile 3 online";
sql"alter database datafile 'd:oracleoradatausers01.dbf'online";
=====================================================
=====================================================
切換當(dāng)前的incarnation 回到resetlogs 前RESET DATABASE TO INCARNATION inc_key
=====================================================
=====================================================
RMAN 高級恢復(fù) 1 基于時間點的恢復(fù)
run
{
set until time "to_date('07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')"'
restore database;
recover database;
alter database open resetlogs;
}
2 基于SCN 的恢復(fù)
startup mount;
restore database UNTIL SCN 10000;
recover database UNTIL SCN 10000;
alter database open resetlogs;
3 基于日志序列的恢復(fù)
startup mount;
restore database UNTIL SEQUENCE 100 thread 1;
recover database UNTIL SEQUENCE 100 thread 1;
alter database open resetlogs;
本文出自 51CTO.COM技術(shù)博客