使用RMAN進(jìn)行Oracle備份
Oracle備份有很多種的方法,下面為您介紹的是通過使用RMAN(備份與恢復(fù)管理器)實(shí)現(xiàn) Oracle數(shù)據(jù)庫的備份的方法,該方法供您參考,希望對(duì)您有所幫助。
i.使用RMAN進(jìn)行備份
Recovery manager(RMAN)是ORACLE提供的DBA工具,用語管理備份和恢復(fù)操作。RMAN只能用于ORACLE8或更高的版本中。它能夠備份整個(gè)數(shù)據(jù)庫或數(shù)據(jù)庫部件,其中包括表空間、數(shù)據(jù)文件,控制文件和歸檔文件。RMAN可以按要求存取和執(zhí)行備份和恢復(fù)。
RMAN備份有如下優(yōu)點(diǎn)
☆支持在線熱備份
☆支持多級(jí)增量備份
☆支持并行備份、恢復(fù)
☆減少所需要備份量
☆備份、恢復(fù)使用簡單
重要的是,使用恢復(fù)管理器允許您進(jìn)行增量數(shù)據(jù)塊級(jí)的Oracle備份(這個(gè)與導(dǎo)出/導(dǎo)入的增量截然不同)。增量RMAN備份是時(shí)間和空間有效的,因?yàn)樗麄冎粋浞葑陨洗蝹浞菀詠碛凶兓哪切?shù)據(jù)塊。另一個(gè)空間有效的RMAN特性是它只備份數(shù)據(jù)文件中使用的數(shù)據(jù)塊,忽略空的,未用的數(shù)據(jù)塊,這個(gè)對(duì)于預(yù)分配空間的表空間有很大的好處。從9i開始,還增加了RMAN的數(shù)據(jù)塊級(jí)別的恢復(fù),可以進(jìn)一步減少數(shù)據(jù)庫恢復(fù)時(shí)間。
RMAN支持以下不同類型的備份
FULL 數(shù)據(jù)庫全備份,包括所有的數(shù)據(jù)塊
INCREMENTAL 增量備份,只備份自上次增量備份以來修改過的數(shù)據(jù)塊。需要一個(gè)0級(jí)的增量作為增量的基礎(chǔ),可以支持5級(jí)增量。
OPEN 在數(shù)據(jù)庫打開的時(shí)候使用
CLOSED 在數(shù)據(jù)庫安裝(MOUNT)但不打開的時(shí)候備份,關(guān)閉備份可以是CONSISTENT或IN CONSISTENT類型的。
CONSISTENT 在數(shù)據(jù)庫安裝,單不打開,并且在安裝之前數(shù)據(jù)庫被徹底關(guān)閉(而不是被破壞或異常退出)時(shí)使用。CONSISTENT備份可以簡單的進(jìn)行復(fù)原(RESTORE)而不是恢復(fù)(RECOVER)
INCONSISTENT 在數(shù)據(jù)庫打開或安裝(但不打開)時(shí)使用。在該數(shù)據(jù)庫正常關(guān)閉或崩潰后, INCONSISTENT備份需要恢復(fù)。
理解BACKUP,RESTORE,RECOVER命令,這是RMAN最基本的三個(gè)命令,可以進(jìn)行數(shù)據(jù)庫的備份,復(fù)原以及恢復(fù)操作。理解恢復(fù)目錄,RMAN可以在沒有恢復(fù)目錄(NOCATALOG)下運(yùn)行,這個(gè)時(shí)候備份信息保存在控制文件。保存在控制文件的備份信息是很危險(xiǎn)的,如果控制文件的破壞將導(dǎo)致備份信息的丟失與恢復(fù)的失敗,而且,沒有恢復(fù)目錄,很多RMAN的命令將不被支持。所以對(duì)于重要的數(shù)據(jù)庫,建議創(chuàng)建恢復(fù)目錄,恢復(fù)目錄也是一個(gè)數(shù)據(jù)庫,只不過這個(gè)數(shù)據(jù)庫用來保存?zhèn)浞菪畔ⅲ粋€(gè)恢復(fù)目錄可以用來備份多個(gè)數(shù)據(jù)庫。
創(chuàng)建RMAN目錄,以下步驟說明了在一個(gè)數(shù)據(jù)庫中盡力RMAN目錄的過程。
a.為目錄創(chuàng)建一個(gè)單獨(dú)的表空間SQL>Create tablespace tools datafile ‘fielname’ size 50m;
b.創(chuàng)建RMAN用戶SQL>Create user RMAN identified by RMAN default tablespace tools temporary tablespace temp;
c.給RMAN授予權(quán)限SQL>Grant connect , resource , recovery_catalog_owner to rman;
d.打開RMAN $>RMAN
e.連接數(shù)據(jù)庫RMAN>connect catalog rman/rman
f.創(chuàng)建恢復(fù)目錄RMAN>Create catalog tablespace rman
注冊(cè)目標(biāo)數(shù)據(jù)庫,恢復(fù)目錄創(chuàng)建成功后,就可以注冊(cè)目標(biāo)數(shù)據(jù)庫了,目標(biāo)數(shù)據(jù)庫就是需要備份的數(shù)據(jù)庫,一個(gè)恢復(fù)目錄可以注冊(cè)多個(gè)目標(biāo)數(shù)據(jù)庫,注冊(cè)目標(biāo)數(shù)據(jù)庫的命令為:$>RMAN target internal/password catalog rman/rman@rcdb; RMAN>Register database; 數(shù)據(jù)庫注冊(cè)完成,就可以用RMAN來進(jìn)行Oracle備份了,更多命令請(qǐng)參考ORACLE聯(lián)機(jī)手冊(cè)或《ORACLE8i備份與恢復(fù)手冊(cè)》。
RMAN使用腳本來備份數(shù)據(jù)庫,以下是RMAN進(jìn)行備份的幾個(gè)例子。
a.備份整個(gè)數(shù)據(jù)庫 backup full tag ‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database;
b.備份一個(gè)表空間 backup tag ‘tsuser’ format ‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users;
c.備份歸檔日志 backup tag ‘alog’ format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;
ii.維護(hù)RMAN
RMAN的維護(hù)主要分為幾個(gè)方面
1、查看RMAN的信息
檢查現(xiàn)有備份
RMAN>list backup
列出過期備份
RMAN>report obsolete
刪除過期的備份
RMAN>allocate channel for maintenance type disk;
RMAN>change backupset id delete;
RMAN>release channel;
2、同步或重置RMAN 如果目標(biāo)數(shù)據(jù)庫物理對(duì)象發(fā)生了變化,如添加了一個(gè)數(shù)據(jù)文件,需要用如下命令同步: RMAN>resync catalog; 如果目標(biāo)數(shù)據(jù)庫reset了數(shù)據(jù)庫,需要用如下命令同步RMAN>reset database; 當(dāng)手工刪除了數(shù)據(jù)庫的歸檔文件后,要執(zhí)行以下腳本同步RMAN>allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck; RMAN>release channel; 當(dāng)手工刪除了數(shù)據(jù)庫的RMAN備份后,要執(zhí)行以下腳本來同步 RMAN>allocate channel for maintenance type disk; RMAN>crosscheck backup; RMAN>delete expired backup;
【編輯推薦】




















