洪家芬
摘要:數據庫備份是保證數據庫安全的一項重要措施,Oracle數據庫管理系統提供了強大的數據庫備份功能,RMAN是Oracle數據庫管理提供的數據庫備份與恢復實用程序。文章對RMAN組成、工作機制、備份步驟進行了介紹。
關鍵詞:ORACLE數據庫;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 數據庫備份的意義及Oracle數據庫提供的備份方法
1.1 數據庫備份的意義
數據庫備份與恢復是保證數據庫安全的一項重要內容。用戶在使用數據庫過程中數據庫中的數據必須是可靠的、正確的。但是數據庫在長期的運行中由于各種原因,例如,語句故障、進程故障、用戶錯誤、實例故障、介質故障等原因,會直接影響數據庫系統的安全,影響數據庫中數據的正確性,甚至破壞數據庫,造成部分或者全部數據丟失。當數據庫出現故障后,必須要有一套有效的方法快速重建一個完整的數據庫,保證數據庫數據和發生故障時的數據一致。因此在數據庫發生故障前必須做好數據的備份工作,以保證數據庫出現故障后可以成功的恢復到正確的狀態。
1.2 Oracle數據庫備份的方法
1)用戶管理的備份:使用SQL命令結合OS命令備份數據庫的方法;
2)邏輯備份:使用Oracle數據庫提供的EXP和EXPDP工具完成備份;
3)RMAN(Recovery Manager,恢復管理器)管理的備份:從Oracle8.0版本開始。Oracle公司提供了實用程序RMAN,它不依賴于操作系統的強大命令語言,可以協助DBA管理備份、轉儲和恢復操作。
2 RMAN的組成
RMAN由目標數據庫、服務器進程、通道、恢復目錄等到組成。RMAN的組成如圖1所示。
圖1
1)目標數據庫:要執行備份、轉儲和恢復操作的數據庫。
2)服務進程:執行備份、轉儲和恢復操作前,必須先要連接到目標數據庫,當連接到目標數據庫時,會建立兩個連到目標數據庫的服務進程。
3)通道:執行數據庫備份與恢復操作時,都要使用操作系統進程,啟動操作系統進程通過分配通道實現。每分配一個通道,RMAN啟動一個服務進程。當在存儲設備上執行I/O操作時,必須分配相應的通道,它即可讓RMAN自動分配,也可以手動分配。如圖2所示。
圖2
4)恢復管理器:通過啟動操作系統里程將數據備份到磁盤或磁帶上。
5)恢復目錄:用于存放數據文件、控制文件、歸檔日志和SPFILE和備份集和備份信息片信息,恢復目錄是一個可選項。通過恢復目錄,恢復管理器通過可以從目錄數據庫中自動獲得信息,用于維護歷史備份信息。如果不使用恢復目錄,RMAN的備份信息存放在目標數據庫的控制文件中,當RMAN的備份信息存放初始化參數control_file_record_kep_time的值后,其備份信息可能被覆蓋,從而導致之前的備份不能使用;如果使用恢復目錄,那么RMAN的備份信息不僅存放到目標數據庫的控件文件中,而且還會存放到恢復目錄中。建立恢復目錄可用以下代碼實現:
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備份數據庫的步驟
3.1 連接到目標數據庫
連接到目標數據庫就是建立RMAN數據庫與目標數據庫之間的連接,RMAN可以在無恢復目錄及有恢復目錄兩種方式下連接到目錄數據庫。
1)在無恢復目錄下連接到目標數據庫,需要指定NOCATALOG選項,用戶必須以SYSDBA或SYSOPER。實現方法如下。
C:>rmannocatalog
RMAN>connecttargetsys/oracle@demo
2)在有恢復目錄下連接到目標數據庫,用戶可以通過指定CATALOG選項連接到恢復目錄數據庫,通過指定TARGET連接到目錄數據庫。實現方法如下。
C:>rman
RMAN>connecttargetsys/oracle@demo
RMAN>connecttatalogrman/rman@rcat
3.2 配置通道
RMAN在存儲設備與目標數據庫之間建立的連接稱為通道。通道包括自動通道分配和采用RUN命令手動通道分配兩種方法。
1)手動配置通道:在Oracle Database 9i以前,用RMAN執行備份、轉儲和恢復操作時,必須手工配置通道;Oracle Database 9i之后可以自動分配通道。實現方法如下:
RUN{
ALLOCATECHANNELC1TYPEDISK;
ALLOCATECHANNELC2TYPEDISK;
ALLOCATECHANNELC3TYPEDISK;
BACKUPDATEFILE1,2,3;
}
2)自動配置通道:在RUN命令外部使用BACKUP、RESTORE、DELETE命令,或在RUN命令中使用這些命令,但末手動定義通道時,RMAN自動使用自動通道配置。實現方法如下:
RMAN>CONFIGUREDEVICETYPEDISKPARALLELISM2;
RMAN>CONFIGUREDEFAULTDEVICETYPETODISK