论文部分内容阅读
摘要:数据库备份是保证数据库安全的一项重要措施,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所示。
图2
4)恢复管理器:通过启动操作系统里程将数据备份到磁盘或磁带上。
5)恢复目录:用于存放数据文件、控制文件、归档日志和SPFILE和备份集和备份信息片信息,恢复目录是一个可选项。通过恢复目录,恢复管理器通过可以从目录数据库中自动获得信息,用于维护历史备份信息。如果不使用恢复目录,RMAN的备份信息存放在目标数据库的控制文件中,当RMAN的备份信息存放初始化参数control_file_record_kep_time的值后,其备份信息可能被覆盖,从而导致之前的备份不能使用;如果使用恢复目录,那么RMAN的备份信息不仅存放到目标数据库的控件文件中,而且还会存放到恢复目录中。建立恢复目录可用以下代码实现:
C:\>sqlplus system/manager@demo
SQL>CREATETABLESPACErman_ts
2DATAFILE‘D:\demo\rman_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
3.3 配置RMAN环境
在使用RMAN进行数据库备份之前需对RMAN进行备份环境配置。配置内容包括备份集和备份片最大尺寸、备份优化、备份冗余策略、多重备份、默认设备类型、每个通道大小等。
3.4 使用COPY或BACKUP命令进行备份
由于RMAN备份是由目标数据库的服务进程来完成,所以当使用RMAN执行备份操作时,目标数据库必须处于MOUNT或OPEN状态,且必须分配通道。当使用RMAN备份时,在默认情况下执行完全备份,即只备份所有已用数据块,并跳过未用数据块,当备份数据文件较大时,采用这种备份需要耗费大量的时间。为了使备份更加快速,可以使用增量备份或累积备份。下面说明使用BACKUP备份数据库,使用BACKUP命令可以备份全部数据库、某一个表空间、数据文件、日志文件等。以下方法可以实现归档日志、数据库、数据文件、控件文件、SPFILE、增量0级、累积1级备份。
RMAN>backupformat‘d:\dump\%d_%s.arc’archivelogall;
RMAN>backupformat‘d:\dump\%d_%s.bak’database;
RMAN>backupformat‘d:\dump\%d_%s.bak’datafile3;
RMAN>backupformat‘d:\dump\%d_%s.bak’currentcontrolfile;
RMAN>backupformat‘d:\dump\%d_%s.bak’spfile;
RMAN>backupincrementallevel0tablespaceusers;
RMAN>backupiccrementallevel1cumulativetablespaceusers;
4 结束语
数据库在使用过程中由于各种原因,可能会破坏数据库,以导致数据被损坏或者丢失,因此在数据库正常运行的情况下,对数据库进行备份是保证数据库安全的一种有效方法。在实用中可以根据实际情况,制定相应的备份与恢复策略,当数据库遭到破坏时,可以将损失尽可能减少。
参考文献:
[1](美)Matthew Hart,Robert G.Freeman著,江玲玲译.Oracle Database 10g RMAN备份与恢复[M].清华大学出版社,2008,3.
[2] 袁福庆.ORACLE数据库管理与维护手册[M].人民邮电出版社,2006,5.
[3] 王海亮,王海凤,张立民,郑建茹等.精通Oracle 10g备份与恢复[M].中国水利水电出版社,2005,1.
[4] 腾永昌.Oracle 10g数据库系统管理[M].机械工业出版社,2006,1.
收稿日期:
作者简介:洪家芬(1979-),女,助讲,研究方向:计算机网络与数据库。
关键词: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所示。

图2
4)恢复管理器:通过启动操作系统里程将数据备份到磁盘或磁带上。
5)恢复目录:用于存放数据文件、控制文件、归档日志和SPFILE和备份集和备份信息片信息,恢复目录是一个可选项。通过恢复目录,恢复管理器通过可以从目录数据库中自动获得信息,用于维护历史备份信息。如果不使用恢复目录,RMAN的备份信息存放在目标数据库的控制文件中,当RMAN的备份信息存放初始化参数control_file_record_kep_time的值后,其备份信息可能被覆盖,从而导致之前的备份不能使用;如果使用恢复目录,那么RMAN的备份信息不仅存放到目标数据库的控件文件中,而且还会存放到恢复目录中。建立恢复目录可用以下代码实现:
C:\>sqlplus system/manager@demo
SQL>CREATETABLESPACErman_ts
2DATAFILE‘D:\demo\rman_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
3.3 配置RMAN环境
在使用RMAN进行数据库备份之前需对RMAN进行备份环境配置。配置内容包括备份集和备份片最大尺寸、备份优化、备份冗余策略、多重备份、默认设备类型、每个通道大小等。
3.4 使用COPY或BACKUP命令进行备份
由于RMAN备份是由目标数据库的服务进程来完成,所以当使用RMAN执行备份操作时,目标数据库必须处于MOUNT或OPEN状态,且必须分配通道。当使用RMAN备份时,在默认情况下执行完全备份,即只备份所有已用数据块,并跳过未用数据块,当备份数据文件较大时,采用这种备份需要耗费大量的时间。为了使备份更加快速,可以使用增量备份或累积备份。下面说明使用BACKUP备份数据库,使用BACKUP命令可以备份全部数据库、某一个表空间、数据文件、日志文件等。以下方法可以实现归档日志、数据库、数据文件、控件文件、SPFILE、增量0级、累积1级备份。
RMAN>backupformat‘d:\dump\%d_%s.arc’archivelogall;
RMAN>backupformat‘d:\dump\%d_%s.bak’database;
RMAN>backupformat‘d:\dump\%d_%s.bak’datafile3;
RMAN>backupformat‘d:\dump\%d_%s.bak’currentcontrolfile;
RMAN>backupformat‘d:\dump\%d_%s.bak’spfile;
RMAN>backupincrementallevel0tablespaceusers;
RMAN>backupiccrementallevel1cumulativetablespaceusers;
4 结束语
数据库在使用过程中由于各种原因,可能会破坏数据库,以导致数据被损坏或者丢失,因此在数据库正常运行的情况下,对数据库进行备份是保证数据库安全的一种有效方法。在实用中可以根据实际情况,制定相应的备份与恢复策略,当数据库遭到破坏时,可以将损失尽可能减少。
参考文献:
[1](美)Matthew Hart,Robert G.Freeman著,江玲玲译.Oracle Database 10g RMAN备份与恢复[M].清华大学出版社,2008,3.
[2] 袁福庆.ORACLE数据库管理与维护手册[M].人民邮电出版社,2006,5.
[3] 王海亮,王海凤,张立民,郑建茹等.精通Oracle 10g备份与恢复[M].中国水利水电出版社,2005,1.
[4] 腾永昌.Oracle 10g数据库系统管理[M].机械工业出版社,2006,1.
收稿日期:
作者简介:洪家芬(1979-),女,助讲,研究方向:计算机网络与数据库。