洪家芬
摘要:數(shù)據(jù)庫備份是保證數(shù)據(jù)庫安全的一項重要措施,Oracle數(shù)據(jù)庫管理系統(tǒng)提供了強(qiáng)大的數(shù)據(jù)庫備份功能,RMAN是Oracle數(shù)據(jù)庫管理提供的數(shù)據(jù)庫備份與恢復(fù)實用程序。文章對RMAN組成、工作機(jī)制、備份步驟進(jìn)行了介紹。
關(guān)鍵詞:ORACLE數(shù)據(jù)庫;RMAN;備份
Backup of Oracle Database Base on RMAN
HONG Jia-feng
(Zhuhai Campus of Beijing Institute of Technology, Guandong Zhuhai 519085, China)
Abstract: The database backup is an important measure to assure the database security, Oracle database management system has provided a formidable database backup function, RMAN is a utility program for backup and restore by the Oracle database management database. The article introduces the RMAN composition, the working mechanism, the backup step.
Key words: oracle database; RMAN; backup
1 數(shù)據(jù)庫備份的意義及Oracle數(shù)據(jù)庫提供的備份方法
1.1 數(shù)據(jù)庫備份的意義
數(shù)據(jù)庫備份與恢復(fù)是保證數(shù)據(jù)庫安全的一項重要內(nèi)容。用戶在使用數(shù)據(jù)庫過程中數(shù)據(jù)庫中的數(shù)據(jù)必須是可靠的、正確的。但是數(shù)據(jù)庫在長期的運行中由于各種原因,例如,語句故障、進(jìn)程故障、用戶錯誤、實例故障、介質(zhì)故障等原因,會直接影響數(shù)據(jù)庫系統(tǒng)的安全,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫,造成部分或者全部數(shù)據(jù)丟失。當(dāng)數(shù)據(jù)庫出現(xiàn)故障后,必須要有一套有效的方法快速重建一個完整的數(shù)據(jù)庫,保證數(shù)據(jù)庫數(shù)據(jù)和發(fā)生故障時的數(shù)據(jù)一致。因此在數(shù)據(jù)庫發(fā)生故障前必須做好數(shù)據(jù)的備份工作,以保證數(shù)據(jù)庫出現(xiàn)故障后可以成功的恢復(fù)到正確的狀態(tài)。
1.2 Oracle數(shù)據(jù)庫備份的方法
1)用戶管理的備份:使用SQL命令結(jié)合OS命令備份數(shù)據(jù)庫的方法;
2)邏輯備份:使用Oracle數(shù)據(jù)庫提供的EXP和EXPDP工具完成備份;
3)RMAN(Recovery Manager,恢復(fù)管理器)管理的備份:從Oracle8.0版本開始。Oracle公司提供了實用程序RMAN,它不依賴于操作系統(tǒng)的強(qiáng)大命令語言,可以協(xié)助DBA管理備份、轉(zhuǎn)儲和恢復(fù)操作。
2 RMAN的組成
RMAN由目標(biāo)數(shù)據(jù)庫、服務(wù)器進(jìn)程、通道、恢復(fù)目錄等到組成。RMAN的組成如圖1所示。
圖1
1)目標(biāo)數(shù)據(jù)庫:要執(zhí)行備份、轉(zhuǎn)儲和恢復(fù)操作的數(shù)據(jù)庫。
2)服務(wù)進(jìn)程:執(zhí)行備份、轉(zhuǎn)儲和恢復(fù)操作前,必須先要連接到目標(biāo)數(shù)據(jù)庫,當(dāng)連接到目標(biāo)數(shù)據(jù)庫時,會建立兩個連到目標(biāo)數(shù)據(jù)庫的服務(wù)進(jìn)程。
3)通道:執(zhí)行數(shù)據(jù)庫備份與恢復(fù)操作時,都要使用操作系統(tǒng)進(jìn)程,啟動操作系統(tǒng)進(jìn)程通過分配通道實現(xiàn)。每分配一個通道,RMAN啟動一個服務(wù)進(jìn)程。當(dāng)在存儲設(shè)備上執(zhí)行I/O操作時,必須分配相應(yīng)的通道,它即可讓RMAN自動分配,也可以手動分配。如圖2所示。
圖2
4)恢復(fù)管理器:通過啟動操作系統(tǒng)里程將數(shù)據(jù)備份到磁盤或磁帶上。
5)恢復(fù)目錄:用于存放數(shù)據(jù)文件、控制文件、歸檔日志和SPFILE和備份集和備份信息片信息,恢復(fù)目錄是一個可選項。通過恢復(fù)目錄,恢復(fù)管理器通過可以從目錄數(shù)據(jù)庫中自動獲得信息,用于維護(hù)歷史備份信息。如果不使用恢復(fù)目錄,RMAN的備份信息存放在目標(biāo)數(shù)據(jù)庫的控制文件中,當(dāng)RMAN的備份信息存放初始化參數(shù)control_file_record_kep_time的值后,其備份信息可能被覆蓋,從而導(dǎo)致之前的備份不能使用;如果使用恢復(fù)目錄,那么RMAN的備份信息不僅存放到目標(biāo)數(shù)據(jù)庫的控件文件中,而且還會存放到恢復(fù)目錄中。建立恢復(fù)目錄可用以下代碼實現(xiàn):
C:>sqlplus system/manager@demo
SQL>CREATETABLESPACErman_ts
2DATAFILE‘D:demo man_ts.dbf size 15M;
SQL>CTEATEUSERrmanIDENTIFIEDBYrman
2DEFAULTTABLESPACErman_ts;
SQL>GRANTCONNECT,RESOURCE,RECOVERY_CATALOG_OWNER
2TOrman;
C:>rman catalogrman/rman@demo
RMAN>createcatalog;
RMAN>registerdatabase;
3 用RMAN備份數(shù)據(jù)庫的步驟
3.1 連接到目標(biāo)數(shù)據(jù)庫
連接到目標(biāo)數(shù)據(jù)庫就是建立RMAN數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫之間的連接,RMAN可以在無恢復(fù)目錄及有恢復(fù)目錄兩種方式下連接到目錄數(shù)據(jù)庫。
1)在無恢復(fù)目錄下連接到目標(biāo)數(shù)據(jù)庫,需要指定NOCATALOG選項,用戶必須以SYSDBA或SYSOPER。實現(xiàn)方法如下。
C:>rmannocatalog
RMAN>connecttargetsys/oracle@demo
2)在有恢復(fù)目錄下連接到目標(biāo)數(shù)據(jù)庫,用戶可以通過指定CATALOG選項連接到恢復(fù)目錄數(shù)據(jù)庫,通過指定TARGET連接到目錄數(shù)據(jù)庫。實現(xiàn)方法如下。
C:>rman
RMAN>connecttargetsys/oracle@demo
RMAN>connecttatalogrman/rman@rcat
3.2 配置通道
RMAN在存儲設(shè)備與目標(biāo)數(shù)據(jù)庫之間建立的連接稱為通道。通道包括自動通道分配和采用RUN命令手動通道分配兩種方法。
1)手動配置通道:在Oracle Database 9i以前,用RMAN執(zhí)行備份、轉(zhuǎn)儲和恢復(fù)操作時,必須手工配置通道;Oracle Database 9i之后可以自動分配通道。實現(xiàn)方法如下:
RUN{
ALLOCATECHANNELC1TYPEDISK;
ALLOCATECHANNELC2TYPEDISK;
ALLOCATECHANNELC3TYPEDISK;
BACKUPDATEFILE1,2,3;
}
2)自動配置通道:在RUN命令外部使用BACKUP、RESTORE、DELETE命令,或在RUN命令中使用這些命令,但末手動定義通道時,RMAN自動使用自動通道配置。實現(xiàn)方法如下:
RMAN>CONFIGUREDEVICETYPEDISKPARALLELISM2;
RMAN>CONFIGUREDEFAULTDEVICETYPETODISK