基于RMAN的ORACLE数据库备份
2008-07-14洪家芬
洪家芬
摘要:数据库备份是保证数据库安全的一项重要措施,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