程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 使用RMAN進行Oracle備份

使用RMAN進行Oracle備份

編輯:Oracle數據庫基礎

Oracle備份有很多種的方法,下面為您介紹的是通過使用RMAN(備份與恢復管理器)實現 Oracle數據庫的備份的方法,該方法供您參考,希望對您有所幫助。

i.使用RMAN進行備份

Recovery manager(RMAN)是ORACLE提供的DBA工具,用語管理備份和恢復操作。RMAN只能用於Oracle8或更高的版本中。它能夠備份整個數據庫或數據庫部件,其中包括表空間、數據文件,控制文件和歸檔文件。RMAN可以按要求存取和執行備份和恢復。

RMAN備份有如下優點
☆支持在線熱備份
☆支持多級增量備份
☆支持並行備份、恢復
☆減少所需要備份量
☆備份、恢復使用簡單

重要的是,使用恢復管理器允許您進行增量數據塊級的Oracle備份(這個與導出/導入的增量截然不同)。增量RMAN備份是時間和空間有效的,因為他們只備份自上次備份以來有變化的那些數據塊。另一個空間有效的RMAN特性是它只備份數據文件中使用的數據塊,忽略空的,未用的數據塊,這個對於預分配空間的表空間有很大的好處。從9i開始,還增加了RMAN的數據塊級別的恢復,可以進一步減少數據庫恢復時間。

RMAN支持以下不同類型的備份

FULL                        數據庫全備份,包括所有的數據塊
INCREMENTAL     增量備份,只備份自上次增量備份以來修改過的數據塊。需要一個0級的增量作為增量的基礎,可以支持5級增量。
OPEN                        在數據庫打開的時候使用
CLOSED                    在數據庫安裝(MOUNT)但不打開的時候備份,關閉備份可以是CONSISTENT或IN CONSISTENT類型的。
CONSISTENT          在數據庫安裝,單不打開,並且在安裝之前數據庫被徹底關閉(而不是被破壞或異常退出)時使用。CONSISTENT備份可以簡單的進行復原(RESTORE)而不是恢復(RECOVER)
INCONSISTENT             在數據庫打開或安裝(但不打開)時使用。在該數據庫正常關閉或崩潰後, INCONSISTENT備份需要恢復。

理解BACKUP,RESTORE,RECOVER命令,這是RMAN最基本的三個命令,可以進行數據庫的備份,復原以及恢復操作。理解恢復目錄,RMAN可以在沒有恢復目錄(NOCATALOG)下運行,這個時候備份信息保存在控制文件。保存在控制文件的備份信息是很危險的,如果控制文件的破壞將導致備份信息的丟失與恢復的失敗,而且,沒有恢復目錄,很多RMAN的命令將不被支持。所以對於重要的數據庫,建議創建恢復目錄,恢復目錄也是一個數據庫,只不過這個數據庫用來保存備份信息,一個恢復目錄可以用來備份多個數據庫。

創建RMAN目錄,以下步驟說明了在一個數據庫中盡力RMAN目錄的過程。

a.為目錄創建一個單獨的表空間SQL>Create tablespace tools datafile ‘fIElname’ size 50m;
b.創建RMAN用戶SQL>Create user RMAN identifIEd by RMAN default tablespace tools temporary tablespace temp;
c.給RMAN授予權限SQL>Grant connect , resource , recovery_catalog_owner to rman;
d.打開RMAN $>RMAN
e.連接數據庫RMAN>connect catalog rman/rman
f.創建恢復目錄RMAN>Create catalog tablespace rman

注冊目標數據庫,恢復目錄創建成功後,就可以注冊目標數據庫了,目標數據庫就是需要備份的數據庫,一個恢復目錄可以注冊多個目標數據庫,注冊目標數據庫的命令為:$>RMAN target internal/passWord catalog rman/rman@rcdb; RMAN>Register database; 數據庫注冊完成,就可以用RMAN來進行Oracle備份了,更多命令請參考ORACLE聯機手冊或《Oracle8i備份與恢復手冊》。

RMAN使用腳本來備份數據庫,以下是RMAN進行備份的幾個例子。
a.備份整個數據庫 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的信息
         檢查現有備份 
             RMAN>list backup
         列出過期備份 
             RMAN>report obsolete
         刪除過期的備份 
             RMAN>allocate channel for maintenance type disk;
             RMAN>change backupset id delete;
             RMAN>release channel;
2、同步或重置RMAN 如果目標數據庫物理對象發生了變化,如添加了一個數據文件,需要用如下命令同步: RMAN>resync catalog; 如果目標數據庫reset了數據庫,需要用如下命令同步RMAN>reset database; 當手工刪除了數據庫的歸檔文件後,要執行以下腳本同步RMAN>allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck; RMAN>release channel; 當手工刪除了數據庫的RMAN備份後,要執行以下腳本來同步 RMAN>allocate channel for maintenance type disk; RMAN>crosscheck backup; RMAN>delete expired backup;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved