RMAN备份示例

一、RMAN备份形式
1、镜像复制(Image Copies)
镜像复制就是数据文件、控制文件或归档文件的复制,与用户通过操作系统命令建立的文件复制一样,只不过RMAN是利用目标数据库中的服务进程来完成文件复制,而用户则是用操作系统命令。
映像备份不压缩、不打包、直接COPY 独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份,而且只能COPY 到磁盘,不能到磁带。可以作为增量备份的0级,一般用来备份控制文件。

2、备份集(Backup Sets)
备份集是通过RMAN创建的逻辑备份对象。一个备份集中可以包含多个数据文件、控制文件或归档文件。
备份集在物理上是由多个备份片段组成,每个备份片段是一个操作系统文件。
每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;如果没有大小的限制,备份集就只由一个备份片构成。
备份片的大小不能大于你的文件系统所支持的文件长度的最大值。

二、RMAN命令执行方式
1、单个执行:
RMAN>backup database;

2、批处理:
RMAN>RUN{.......................}
批处理方式实质是将原来单个执行的命令组合到一起,并放在run{}之间,这种方式最大的好处是所有在run中的命令被视为一个作业,如果作业中任何一条命令执行失败,则整个命令停止执行,即失败命令后的其它命令都不会再被执行。

3、运行脚本:
C:>rman TARGET / @backup_db.rman
RMAN> @backup_db.rman
RMAN> RUN { @backup_db.rman }

三、对数据库进行全备
1、使用backup database命令执行备份
RMAN> BACKUP DATABASE;
执行上述命令后将对目标数据库中的所有数据文件进行备份,由于没有显式指定FORMAT参数,rman会自动为每个备份片段命名,并保存在ORACLE_HOME/database目录下。
也可以通过显式指定format参数来自定义备份片段的命令规则,比如:
RMAN> BACKUP DATABASE FORMAT '/u01/bak/%U';

2、通过list命令查看刚刚创建的备份信息:
RMAN> list backup of database;

四、备份表空间
只要实例启动并处于mount加载状态,不论数据库是否打开,都可以在rman中对表空间进行备份,例如:
RMAN> backup tablespace ppmp format '/u01/bak/%U';
同样,在使用backup tablespace也可以通过显式指定format参数自定义备份片段名称。

五、备份指定数据文件
RMAN> BACKUP DATAFILE n;
如果要查看指定数据文件的备份,可以用:
RMAN> LIST BACKUP OF DATAFILE n;
注:n=指定的的数据文件序号,如果需要备份的数据文件有多个,n=多个序号,中间以逗号分隔即可。

六、备份控制文件
参数文件:control_file_record_keep_time:该参数默认为7天;
表示控制文件始终保持最近7天的可删除记录;7天前的备份信息、归档日志文件历史记录被删除;
如果设置为0,表示不删除历史记录,那么控制文件的增长将失控,因此,RMAN的备份周期不能超过7天;规划备份周期,一定要跟此参数相匹配。
另外,控制文件设置一定不能备份到磁带上;因为如果设置到磁带,在对数据文件进行修改等操作,系统自动备份控制文件,对磁带的mount等操作,将会对系统运行产生影响。

1、最简单的方式,将CONTROLFILE AUTOBACKUP置为ON。
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
然后你再通过rman做任何备份操作的同时,都会自动对控制文件做备份。

2、对编号为1的数据文件,即SYSTEM表空间的数据文件做备份时,RMAN也会自动对控制文件做备份。

3、手动执行备份命令。
RMAN> BACKUP CURRENT CONTROLFILE;

4、执行BACKUP时指定INCLUDE CURRENT CONTROLFILE参数,例如:
RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
如果要查看备份的控制文件,可以通过:
RMAN> LIST BACKUP OF CONTROLFILE;

七、备份归档日志文件
在RMAN中备份归档日志有两种方式:
1、利用BACKUP ARCHIVELOG命令备份
RMAN> BACKUP ARCHIVELOG ALL;

2、在BACKUP过程中利用PLUS ARCHIVELOG参数备份,例如:
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
则在备份数据库的同时自动对所有归档文件进行备份。
这种方式与上种的区别:
BACKUP.....PLUS ARCHIVELOG命令在备份过程中会依次执行下列步骤:
1、运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。
2、执行BACKUP ARCHIVELOG ALL命令备份所有已归档日志。
3、执行BACKUP命令对指定项进行备份。
4、再次运行ALTER SYSTEM ARCHIVE LOG CURRENT对当前redolog归档。
5、对新生成的尚未备份的归档文件进行备份。

在完成归档日志文件备份后,我们通常需要删除已备份过的归档文件。
RMAN提供了DELETE ALL INPUT参数,加在BACKUP命令后,则会在完成备份后自动删除归档目录中已备份的归档日志。
完成备份之后,可以通过下列命令查看已备份的归档日志片段:
RMAN> LIST BACKUP OF ARCHIVELOG ALL;

八、FORMAT字符串替代变量
使用FORMAT参数时可使用的各种替换变量,如下:

%c:备份片的拷贝数(从1开始编号);
%d:数据库名称;
%T:年月日格式(YYYYMMDD);
%s:备份集的号;
%p:表示备份集中备份片段的编号,从1 开始编号;
%D:位于该月中的天数 (DD);
%M:位于该年中的月份 (MM);
%F:一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列;
%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8;
%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称;
%U:是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式;
%t:备份集时间戳;

注:如果在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片段命名。推荐使用:%d_%T_%t_%p

九、RMAN备份相关的动态性能表
1、V$ARCHIVED_LOG:本视图包含了所有归档重做日志文件的创建情况,备份情况以及其他信息。
2、V$BACKUP_CORRUPTION:这个视图显示了RMAN在哪些备份集中发现了损坏的数据坏。在你使用BACKUP VALIDATE命令对备份集进行检查时如果发现了损坏的数据块,RMAN将在这个视图中写入记录。
3、V$COPY_CORRUPTIO:本视图显示了哪些镜像复制备份文件已经被损坏。
4、V$BACKUP_DATAFILE:本视图通常用来获取每个数据文件中非空白数据块的数量,从而帮助你创建出大小基本相等的备份集。另外,在视图中也包含了数据文件中损坏的数据块的信息。
5、V$BACKUP_REDOLOG:本视图显示了在现有的备份集中有哪些归档重做日志文件。
6、V$BACKUP_SET:本视图显示了已经创建的备份集的信息。
7、V$BACKUP_PIECT:本视图显示了已经创建的备份片段的信息。

posted @ 2026-06-30 17:37  秋之枫叶  阅读(6)  评论(0)    收藏  举报