使用RMAN進行Oracle備份
Oracle備份有很多種的方法,下面為您介紹的是通過使用RMAN(備份與恢復(fù)管理器)實現(xiàn) Oracle數(shù)據(jù)庫的備份的方法,該方法供您參考,希望對您有所幫助。
i.使用RMAN進行備份
Recovery manager(RMAN)是ORACLE提供的DBA工具,用語管理備份和恢復(fù)操作。RMAN只能用于ORACLE8或更高的版本中。它能夠備份整個數(shù)據(jù)庫或數(shù)據(jù)庫部件,其中包括表空間、數(shù)據(jù)文件,控制文件和歸檔文件。RMAN可以按要求存取和執(zhí)行備份和恢復(fù)。
RMAN備份有如下優(yōu)點
☆支持在線熱備份
☆支持多級增量備份
☆支持并行備份、恢復(fù)
☆減少所需要備份量
☆備份、恢復(fù)使用簡單
重要的是,使用恢復(fù)管理器允許您進行增量數(shù)據(jù)塊級的Oracle備份(這個與導(dǎo)出/導(dǎo)入的增量截然不同)。增量RMAN備份是時間和空間有效的,因為他們只備份自上次備份以來有變化的那些數(shù)據(jù)塊。另一個空間有效的RMAN特性是它只備份數(shù)據(jù)文件中使用的數(shù)據(jù)塊,忽略空的,未用的數(shù)據(jù)塊,這個對于預(yù)分配空間的表空間有很大的好處。從9i開始,還增加了RMAN的數(shù)據(jù)塊級別的恢復(fù),可以進一步減少數(shù)據(jù)庫恢復(fù)時間。
RMAN支持以下不同類型的備份
FULL 數(shù)據(jù)庫全備份,包括所有的數(shù)據(jù)塊
INCREMENTAL 增量備份,只備份自上次增量備份以來修改過的數(shù)據(jù)塊。需要一個0級的增量作為增量的基礎(chǔ),可以支持5級增量。
OPEN 在數(shù)據(jù)庫打開的時候使用
CLOSED 在數(shù)據(jù)庫安裝(MOUNT)但不打開的時候備份,關(guān)閉備份可以是CONSISTENT或IN CONSISTENT類型的。
CONSISTENT 在數(shù)據(jù)庫安裝,單不打開,并且在安裝之前數(shù)據(jù)庫被徹底關(guān)閉(而不是被破壞或異常退出)時使用。CONSISTENT備份可以簡單的進行復(fù)原(RESTORE)而不是恢復(fù)(RECOVER)
INCONSISTENT 在數(shù)據(jù)庫打開或安裝(但不打開)時使用。在該數(shù)據(jù)庫正常關(guān)閉或崩潰后, INCONSISTENT備份需要恢復(fù)。
理解BACKUP,RESTORE,RECOVER命令,這是RMAN最基本的三個命令,可以進行數(shù)據(jù)庫的備份,復(fù)原以及恢復(fù)操作。理解恢復(fù)目錄,RMAN可以在沒有恢復(fù)目錄(NOCATALOG)下運行,這個時候備份信息保存在控制文件。保存在控制文件的備份信息是很危險的,如果控制文件的破壞將導(dǎo)致備份信息的丟失與恢復(fù)的失敗,而且,沒有恢復(fù)目錄,很多RMAN的命令將不被支持。所以對于重要的數(shù)據(jù)庫,建議創(chuàng)建恢復(fù)目錄,恢復(fù)目錄也是一個數(shù)據(jù)庫,只不過這個數(shù)據(jù)庫用來保存?zhèn)浞菪畔?,一個恢復(fù)目錄可以用來備份多個數(shù)據(jù)庫。
創(chuàng)建RMAN目錄,以下步驟說明了在一個數(shù)據(jù)庫中盡力RMAN目錄的過程。
a.為目錄創(chuàng)建一個單獨的表空間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
注冊目標(biāo)數(shù)據(jù)庫,恢復(fù)目錄創(chuàng)建成功后,就可以注冊目標(biāo)數(shù)據(jù)庫了,目標(biāo)數(shù)據(jù)庫就是需要備份的數(shù)據(jù)庫,一個恢復(fù)目錄可以注冊多個目標(biāo)數(shù)據(jù)庫,注冊目標(biāo)數(shù)據(jù)庫的命令為:$>RMAN target internal/password catalog rman/rman@rcdb; RMAN>Register database; 數(shù)據(jù)庫注冊完成,就可以用RMAN來進行Oracle備份了,更多命令請參考ORACLE聯(lián)機手冊或《ORACLE8i備份與恢復(fù)手冊》。
RMAN使用腳本來備份數(shù)據(jù)庫,以下是RMAN進行備份的幾個例子。
a.備份整個數(shù)據(jù)庫 backup full tag ‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database;
b.備份一個表空間 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.維護RMAN
RMAN的維護主要分為幾個方面
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ù)庫物理對象發(fā)生了變化,如添加了一個數(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;
【編輯推薦】