Oracle 使用RMAN备份数据库文件和归档日志
当数据库打开时,可以使用RMAN BACKUP命令备份如下对象:
● 数据库
● 表空间
● 数据文件
● 归档重做日志
● 控制文件
● 备份集
注 意 | BACKUP命令只能对数据文件、归档重做日志文件和控制文件进行备份,如果要对其他重要的数据文件进行备份,则可以在操作系统中对其进行物理备份。 |
在使用BACKUP命令备份数据文件时,可以为其设置参数,定义备份段的文件名,文件数和每个输入文件的通道。
1.备份数据库
如果备份操作是在数据库被安全关闭之后进行的,那么对整个数据库的备份是一致的;与之相对应,如果数据库是在打开状态下对整个数据库进行的备份,则该备份是非一致的。非一致性备份整个数据库的操作步骤如下:
(1)启动RMAN并连接到目标数据库,输入BACKUP DATABASE命令备份数据库。在BACKUP命令中可以指定FORMAT参数,为RMAN生成的每个备份片段指定一个惟一的名称,以及存储的位置。
C:\>rman target system/admin nocatalog
RMAN> backup database format 'f:\oracle_backup\ora11g_%Y_%M_%D_%U.bak' maxsetsize=2G;
还可以为BACKUP命令指定TAG参数,为备份片段定义备份标签。例如:
RMAN>backup database tag='weekly_backup';
(2)如果建立的是非一致性备份,那么必须在完成备份后对当前的联机重做日志进行归档,因为在使用备份恢复数据库需要使用当前重做日志中的重做记录。
RMAN>sql'alter system archive log current';
(3)在RMAN中执行LIST BACKUP OF DATABASE命令,查看建立的备份集与备份片段的信息。
RMAN> list backup of database;
如果需要对整个数据库进行一致性备份,则首先需要关闭数据库,并启动数据库到MOUNT状态。例如:
RMAN>shutdown immediate
RMAN>startup mount
RMAN>backup database format='f:\oracle_backup\%d_%s.bak';
RMAN>alter database open;
如果想要对某个表空间以外的整个数据库进行备份,则可以使用用如下一组命令:
//设定在备份数据库的时候排除USER01;
RMAN>configure exclude for tablespace user01;
RMAN>backup database format=' f:\oraclebackup \%d_%s.bak';
RMAN>sql 'alter system archive log current';
2.备份表空间
当数据库打开或关闭时,RMAN还可以对表空间进行备份。但是,所有打开的数据库备份都
是非一致的。如果在RMAN中对联机表空间进行备份,则不需要在备份前执行ALTER TABLESPACE … BEGIN BACKUP语句将表空间设置为备份模式。
执行表空间备份的具体步骤如下:
(1)启动RMAN并连接到目标数据库,在RMAN命令提示符中执行BACKUP TABLESPACE命令。例如,下面的示例将使用手动分配的通道对两个表空间进行备份:
C:\>rman target system/admin nocatalog
RMAN> run{
2> allocate channel ch1 type disk;
3> backup tablespace example,user01
4> format 'f:\oracle_backup\%d_%p_%t_%c.dbf';
5> }
(2)执行LIST BACKUP OF TABLESPACE命令查看建立的表空间备份信息。
RMAN> list backup of tablespace example,user01;
3.备份数据文件及数据文件的复制文件
在RMAN中可以使用BACKUP DATAFILE命令可以对单独的数据文件进行备份,备份数据文件时即可以使用其名称指定数据文件,也可以使用其在数据库中的编号指定数据文件。另外,还可以使用BACKUP DATAFILECOPY命令备份数据文件复件。
备份数据文件及数据文件的复制文件语法为:
RMAN> backup datafile 1,2,3 filesperset 3;
RMAN>backup datafilecopy '\oracle_backup\p';
查看备份结果:
RMAN>list backup of datafile 1,2,3;
4.备份控制文件
在RMAN中对控制文件进行备份的方法有很多中,最简单的方法是设置CONFIGURE CONTROLFILE AUTOBACKUP 为ON,这样将启动RMAN的自动备份功能。启动控制文件的自动备份功能后,当在RMAN中执行BACKUP或COPY命令后,RMAN都会对控制文件进行一次自动备份。
如果没有启动自动备份功能,那么必须利用手动方式对控制文件进行备份。手动备份控制文件的方法有如下几种:
RMAN>backup current controlfile;
RMAN>backup tablespace users include current controlfile;
在完成对数据库文件的备份后,可以利用LIST BACKUP OF CONTROLFILE命令来查看包含控制文件的备份集与备份段的信息。例如:
RMAN>list backup of controlfile;
5.备份归档重做日志
归档重做日志是成功进行介质恢复的关键,需要周期性进行备份。在RMAN中,可以使用BACKUP ARCHIVELOG命令对归档重做日志文件时进行备份,或者使用BACKUP PLUS ASRCHIVELOG命令,在对数据文件、控制文件进行备份同时备份。
当使有BACKUP ARCHIVELOG命令来对归档重做日志文件进行备份时,备份的结果为一个归档重做日志备份集。如果将重做日志文件同时归档到多个归档目标中,RMAN并不会在同一个备份集中包含具有相同日志序列号的归档重做日志文件,一般情况下,BACKUP ARCHIVELOG ALL命令会对不同日志序列号备份一个复件。
可以在BACKUP命令中定义DELETE INPUT参数,在备份以后删除归档日志。这样,管理员可以将归档日志备份到磁带上,并清际磁盘上旧的日志。如果定义了DELETE ALL INPUT参数,则RMAN对每个特定的日志序列执行备份,同时删除备份的归档重做日志。
oracle数据库自动备份方法使用BACKUP ARCHIVELOG命令备份归档重做日志的步骤如下:
(1)启动RMAN后,在RMAN命令提示中运行BACKUP ARCHIVELOG命令,下面的示例将
使用配置的通道备份归档日志到磁带上,并删除磁盘上的所有复件。
RMAN> backup archivelog all delete all input;
在使用BACKUP ARCHIVELOG ALL命令进行备份时,RMAN会在备份过程中进行一次日志切换,因此备份集中将包含当前联机重做日志。
需要注意,在备份归档日志时,还可以限制备份的归档重做日志文件的范围。可以指定的范围包括:时间范围、顺序号范围或SCN范围。例如,下面的语句将对一周前生成的归档日志文件进行备份:
RMAN> backup archivelog from time 'sysdate-8'
2> until time 'sysdate-1';
(2)可以使用LIST BACKUP OF ARCHIVELOG ALL命令,查看包含归档重做日志文件的备份集与备份片段信息。
RMAN> list backup of archivelog all;
在对数据库、控制文件或其他数据库对象进行备份时,如果在BACKUP命令中指定了PLUS ARCHIVELOG参数,也可以同时对归档重做日志文件进行备份。例如,下面的语句在备份整个数据库时对归档重做日志文件进行备份:
backup database plus archivelog;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论