RMAN基础知识(二)
五、RMAN备份的概念
RMAN备份可以从两种格式存储:备份集、映像副本。
1、备份集Backup Set
是RMAN提供的一种用于存储备份信息的逻辑结构,并且备份集只能用RMAN命令建立和转储。一个备份集可以存储一个或多个文件的备份信息。备份集只包含数据文件已用数据块的信息,而不包含空数据块。
2、备份片Backup Piece
是用于存储备份集信息的二进制文件。一个备份集由一个或多个备份片组成,摒弃每个备份片对应一个OS文件。默认情况下,一个备份集只有一个备份片,通过设置备份集和备份片的最大尺寸来使得一个备份集包含多个备份片。
3、映像副本Image Copy
是单个数据文件、单个控制文件或单个归档日志的完整备份文件。映像副本文件与原文件的尺寸完全一致,且映像副本只能备份到磁盘上。
六、建立备份集
1、文件格式
%c 当生成多重备份时,用于指定备份片的副本号 (必须)
%d 用于指定数据库名
%e 用于指定归档日志序列号
%p 用于指定备份集内备份片的编号 (必须)
%s 用于指定备份集编号 (必须)
%N 用于指定表空间的名称
%f 用于指定绝对文件号
2、完全数据库备份集
2.1 一致性备份
rman target sys/oracle@demo nocatalog
RMAN> shutdown immediate
RMAN> startup mount
RMAN> backup database format = 'd:\backup\%d_%s.dbf';
RMAN> sql 'alter system archive log current';
2.2 非一致性备份 OPEN and ARCHIVELOG
RMAN> backup database format = 'd:\backup\%d_%s.dbf';
RMAN> sql 'alter system archive log current';
2.3 免除表空间
RMAN> configure exclude for tablespace user03;
RMAN> backup database format = 'd:\backup\%d_%s.dbf';
RMAN> sql 'alter system archive log current';
3、表空间备份集
RMAN> backup tablespace user03 format = 'd:\backup\%N_%s.dbf';
4、数据文件备份集
RMAN> backup datafile 5 format = 'd:\backup\%N_%f_%s.dbf';
5、控制文件备份集
RMAN> backup current controlfile format = 'd:\backup\%d_%s.ctl';
注意:当备份数据文件1时,会自动备份当前控制文件。当备份其他数据文件时,通过指定include current controlfile选项可以同时备份控制文件。
RMAN> backup datafile 5 format = 'd:\backup\%d_%s.dbf' include current controlfile;
6、SPFILE备份集
RMAN> backup spfile format = 'd:\backup\%d_%s.par';
7、归档日志备份集
RMAN> backup format = 'd:\backup\%d_%s.arc' archivelog from time = 'sysdate - 1' until time = 'sysdate';
8、并行化备份集
RMAN> configure device type disk parallelism 3;
RMAN> backup database format = 'd:\backup\%d_%s.dbf';
RMAN> configure device type disk clear;
9、建立多重备份
RMAN> backup copies 3 tablespace users format = 'd:\bak1\%N_%s.dbf', 'd:\bak2\%N_%s.dbf', 'd:\bak3\%N_%s.dbf';
10、备份备份集
RMAN> backup backupset 32 format = 'd:\bak1\%s_%s.bak';
11、建立多个备份片
RMAN> configure channel device type sbt maxpiecesize 4G;
RMAN> backup device type sbt format '%d_%s_%p.dbf' database;
12、建立压缩备份集
RMAN> backup as compressed backupset tablespace user03 format = 'd:\backup\%d_%s.dbf';
13、备份数据文件和归档日志
RMAN> backup format 'd:\backup\%d_%s.bak' tablespace user01 plus archivelog;
14、指定备份集标记
RMAN> backup format 'd:\backup\%d_%s.bak' tablespace users tag='users';
七、建立映像副本
10g前,建立映像副本是使用COPY命令来完成的;10g开始,可以使用BACKUP AS COPY命令来建立映像副本
1、建立数据文件映像副本
RMAN> backup as copy format = 'd:\backup\df_5.dbf' datafile 5;
RMAN> copy datafile 5 to 'd:\backup\df_5.dbf';
2、建立控制文件副本
RMAN> backup as copy format = 'd:\backup\demo.ctl' current controlfile;
RMAN> copy current controlfile to 'd:\backup\demp.ctl';
3、建立归档日志映像副本
RMAN> backup as copy format = 'd:\backup\archive\arc20.log' archivelog sequence 20;
RMAN> copy archivelog 'd:\demo\archive\arc00020_0538067512.001' t
to 'd:\backup\archive\arc20.log';
4、并行化建立映像副本
RMAN> configure device type disk parallelism 3;
RMAN> backup as copy format = 'd:\backup\df_%f.dbf' datafile 5,6,7;
RMAN> configure device type disk clear;
5、指定映像副本标记
RMAN> backup as copy format = 'd:\backup\df_%f.dbf' datafile 5 tag = df_5;
RMAN> copy datafile 5 to 'd:\backup\df_%f.dbf' tag = df_5;
八、建立增量备份和累积备份
在10g之前,增量备份和累积备份包括0、1、2、3、4五个备份级别;在10g版本中仍然保留这五种备份级别,但将来版本会逐步淘汰2、3、4三个备份 级别。其中,级别0相当于完全备份,会备份数据文件的所有已用数据块,而其他级别只会备份相应级别最近一次备份以来变化的数据块。增量级别的数字值越大, 备份的数据块相对越少。当制定备份策略时,如果要采用增量备份和累积备份,则必须首先进行增量0级备份。
1、增量备份
是指备份更低级别或相同级别最近一次备份以来变化的数据块,增量备份的基础是增量0级备份。
RMAN> backup incremental level 0 format = 'd:\backup\%d_%s.dbf' tablespace users;
RMAN> backup incremental level 2 format = 'd:\backup\%d_%s.dbf' tablespace users;
RMAN> backup incremental level 1 format = 'd:\backup\%d_%s.dbf' tablespace users;
2、累积备份
是指备份更低级别或n-1级别最近一次备份以来变化的数据块。增量备份可以降低备份时间,但如果同一级别的增量备份很多,那么当执行恢复时需要转储更多的 备份集,从而需要更多的恢复时间。与增量备份相比,建立累积备份需要消耗更多时间,但因为在恢复时只需要转储较少的备份集,所以使用累积备份可以减少恢复 时间。
RMAN> backup incremental level 0 format = 'd:\backup\%d_%s.dbf' tablespace users;
RMAN> backup incremental level 2 format = 'd:\backup\%d_%s.dbf' tablespace users;
RMAN> backup incremental level 2 cumulative format = 'd:\backup\%d_%s.dbf' tablespace users;
RMAN> backup incremental level 1 format = 'd:\backup\%d_%s.dbf' tablespace users;
九、显示备份信息
1、V$ARCHIVED_LOG
显示所有归档日志映像副本的信息
column name format a45
Select sequence#, name, first_change# From V$ARCHIVED_LOG Where status = 'A';
2、V$BACKUP_DATAFILE
显示控制文件和数据文件的备份集信息
Select a.file#, b.handle, a.blocks * a.block_size byte From V$BACKUP_DATAFILE a, V$BACKUP_PIECE b Where a.set_stamp = b.set_stamp And b.status = 'A';
3、V$BACKUP_REDOLOG
显示归档日志备份集的信息
Select DISTINCT a.handle, b.sequence#, b.first_change#, b.blocks From V$BACKUP_REDOLOG a, V$BACKUP_PIECE b Where a.set_stamp = b.set_stamp And a.status = 'A';
4、V$BACKUP_SET、V$BACKUP_PIECE
显示备份集和备份片的信息
Select b.handle, a.backup_type, a.pieces, a.elapsed_seconds From V$BACKUP_SET a, V$BACKUP_PIECE b Where a.set_stamp = b.set_stamp And b.status = 'A';
5、V$BACKUP_CORRPTION
显示在执行BACKUP命令时所检测到的损坏数据块信息
Select file#, block#, blocks, marked_corrupt From V$BACKUP_CORRUPTION;
6、V$COPY_CORRUPTION
显示执行COPY命令时所检测到的损坏数据块信息
Select file#, block#, blocks, marked_corrupt From V$COPY_CORRUPTION;
url:http://blog.sina.com.cn/s/blog_539c889801000dsa.html