RMAN優缺點及RMAN備份及恢復步驟

RMAN優缺點及RMAN備份及恢復步驟
--如下部分來自網絡轉摘,僅供參考
和OS命令備份方式相比,使用RMAN的優勢
1 備份執行期間不須要人工干預,所以減小了誤操做的機會;
2 能夠有效的將備份和恢復結合起來;
3 支持除邏輯備份之外的全部備份類型,包括徹底備份,增量備份,表空間備份,數據文件備份,控制文件備份以及歸檔日誌文件備份;
4 能夠識別corrupted block;
5 方便的實現按期(定時)備份;
6 自動生成備份日誌;
7 Rman的備份教本和OS無關,方便移植;
8 強大的報表功能能夠方便的獲悉備份的可用性
9 控制文件自動備份
10 skip inaccessible語句存在RMAN命令中,是指RMAN按順序備份數據文件和歸檔日誌時,若是缺乏中間的一個或發生了IO問題,能夠跳過去繼續備份的,弊大與利的,若是你的備份會報錯,不能保證你的備份集是可恢復的。
11 system表空間會連帶controlfile的備份html

其中
a、控制文件自動備份是每次以下狀況rman會自動備份controlfile
一、每次rman發出backup或是copy命令
二、run batch中包含backup或是copy命令
三、源數據加structure發改變,好比加數據文件、加表空間等
controlfile的autobackup是絕對要打開的,至關有用的9i的一個new feature你只須要安心的備份就要能夠了,controlfile rman自動就給你備了。sql

b、system表空間會連帶controlfile的備份:
一、若是controlfile損壞了呢,autobackup就爲你恢復這種狀況下rman的catalog提供了一個很好的「稻草」。
二、autobackup自動備的不光是controlfile,還會備份當前的spfile。
三、對於備份來講是不怕冗餘的,並且特別是controlfile佔不了多少K的狀況下。數據庫

和OS命令備份方式相比,使用RMAN的缺點
1 備份過程不透明;
2 Rman備份的數據只有使用Rman才能恢復;
3 若是管理網絡上的多個數據庫,一般會使用一個單獨的數據庫來做爲Rman恢復目錄,若是這個數據庫出現故障,那麼所做的全部數據庫備份也都不能使用,除非恢復這個數據庫。那麼爲了保證這個用於存放Rman恢復目錄的數據庫出現故障,一般還要對這個數據庫使用OS命令備份。
4 若是有一個數據庫須要備份,那麼備份信息會紀錄在控制文件中,因此控制文件不準多處備份,不能丟失。
5 Rman備份不能備份REDO LOG FILES,參數文件(init.ora),口令文件,操做系統文件,以及OFFLINE的文件。服務器

注意:RMAN不能用於備份初始化參數文件和口令文件。學習有點費時。網絡

二. Oracle9i RMAN 備份及恢復步驟
在這裏沒有討論多麼深刻的RMAN技術,也沒有告訴你們這樣去編寫備份腳本,這並非個人初衷,我只想把我會的寫出來,和你們一塊兒學習,一塊兒進步,謝謝。oracle

一、切換服務器歸檔模式,若是已是歸檔模式可跳過此步:
%sqlplus /nolog (啓動sqlplus)
SQL> conn / as sysdba (以DBA身份鏈接數據庫)
SQL> shutdown immediate; (當即關閉數據庫)
SQL> startup mount (啓動實例並加載數據庫,但不打開)
SQL> alter database archivelog; (更改數據庫爲歸檔模式)
SQL> alter database open; (打開數據庫)
SQL> alter system archive log start; (啓用自動歸檔)
SQL> exit (退出)學習

二、鏈接:
%rman target=rman/rman@mydb (啓動恢復管理器)spa

三、基本設置:
RMAN> configure default device type to disk; (設置默認的備份設備爲磁盤)
RMAN> configure device type disk parallelism 2; (設置備份的並行級別,通道數)
RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (設置備份的文件格式,只適用於磁盤設備)
RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (設置備份的文件格式,只適用於磁盤設備)
RMAN> configure controlfile autobackup on; (打開控制文件與服務器參數文件的自動備份)
RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (設置控制文件與服務器參數文件自動備份的文件格式)操作系統

四、查看全部設置:
RMAN> show allrest

五、查看數據庫方案報表:
RMAN> report schema;

六、備份全庫:
RMAN> backup database plus archivelog delete input; (備份全庫及控制文件、服務器參數文件與全部歸檔的重作日誌,並刪除舊的歸檔日誌)

七、備份表空間:
RMAN> backup tablespace system plus archivelog delete input; (備份指定表空間及歸檔的重作日誌,並刪除舊的歸檔日誌)

八、備份歸檔日誌:
RMAN> backup archivelog all delete input;

九、複製數據文件:
RMAN> copy datafile 1 to '/oracle/dbs/system.copy';

十、查看備份和文件複本:
RMAN> list backup;

十一、驗證備份:
RMAN> validate backupset 3;

十二、從自動備份中恢復服務器參數文件:
RMAN> shutdown immediate; (當即關閉數據庫)
RMAN> startup nomount; (啓動實例)
RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (從自動備份中恢復服務器參數文件)

1三、從自動備份中恢復控制文件:
RMAN> shutdown immediate; (當即關閉數據庫)
RMAN> startup nomount; (啓動實例)
RMAN> restore controlfile to '/backup1' from autobackup; (從自動備份中恢復控制文件)

1三、恢復和復原全數據庫:
RMAN> shutdown immediate; (當即關閉數據庫)
RMAN> exit (退出)
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (將數據文件重命名)
%rman target=rman/rman@mydb (啓動恢復管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化參數文件啓動數據庫)
RMAN> restore database; (還原數據庫)
RMAN> recover database; (恢復數據庫)
RMAN> alter database open; (打開數據庫)

1四、恢復和復原表空間:
RMAN> sql 'alter tablespace users offline immediate'; (將表空間脫機)
RMAN> exit (退出恢復管理器)
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (將表空間重命名)
%rman target=rman/rman@mydb (啓動恢復管理器)
RMAN> restore tablespace users; (還原表空間)
RMAN> recover tablespace users; (恢復表空間)
RMAN> sql 'alter tablespace users online'; (將表空間聯機)

1五、增量備份與恢復:
第一天的增量基本備份:
RMAN> backup incremental level=0 database plus archivelog delete input;
次日的增量差別備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第三天的增量差別備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第四天的增量差別備份:
RMAN> backup incremental level=1 database plus archivelog delete input;
第五天的增量差別備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第六天的增量差別備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第七天的增量差別備份:
RMAN> backup incremental level=0 database plus archivelog delete input;

1六、增量恢復:
RMAN> shutdown immediate;
RMAN> exit
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak
%rman target=rman/rman@mydb
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open;

驗證rman備份是否有效
http://www.eygle.com/archives/2010/01/rman_validate_backup.html
驗證控制文件和參數文件:
RMAN> restore validate controlfile;
RMAN> restore validate spfile;
驗證全備份通常會很慢,謹慎試驗:
RMAN> restore validate database;

本身編寫腳本,定時執行驗證
rman target / nocatalog log=/rman/validate/rman_db_validate.log<
restore validate database;
exit
EOF

(Rman全庫0級壓縮備份腳本 記錄一下本身備用)rman target / nocatalog log=/rman/log/rman_db_level0.log <run {allocate channel d1 type disk;allocate channel d2 type disk;allocate channel d3 type disk;backup as compressed backupset incremental level 0 database filesperset 4 format'/rman/data/level0_%d_%s_%p_%u_%T.bak' include current controlfile;sql 'alter system archive log current';backup archivelog all filesperset 10 format '/rman/arch/arc_%d_%s_%p_%u_%T.bak'delete all input;release channel d1;release channel d2;release channel d3;crosscheck backup;delete noprompt expired backup;delete noprompt obsolete;}exitEOF

相關文章
相關標籤/搜索