RMAN 组件:

1. RMAN 执行程序, 也就是RMAN 命令.

2. Server session : 服务器上的进程, 是真正用来干活的.

3. Target database: 你想要进行备份的数据库

4. RMAN Repository: RMAN的源数据, 这部分内容可以存储在control file, 也可以单独存储在数据库中,  用来保存备份与恢复信息的一个数据库,不建议创建在目标数据库上,利用恢复目录可以同时管理多个目标数据库,存储更多的备份信息,可以存储备份脚本。如果不采用恢复目录,可以采用控制文件来代替恢复目录,oracle 9i因为控制文件自动备份的功能,利用控制文件很大程度上可以取代恢复目录。

5. Channel: 是一个通道, 用来连接数据库与备份的存储介质.

6. Media Management Library: 一般就是指存储介质的制造商给出的驱动. 我们一般就存储在磁盘.

注: rman 不能用户备份 联机重做日志文件, parameter file , password file, 个人还不确定 !


RMAN catalog 的建立:

这里最好在另一个专门再创建个数据库, 而不是用原来的target数据库. 然后, 在那个新的数据库上创建以下内容: 所以, 还是利用 control file 来保存元数据信息吧, 只是当有多个数据库需要备份时, 再考虑使用回复目录.

1) 建立恢复目录使用的表空间:

create tablespace rman_ts datafile '/xxx/rman_ts.dbf' size 20M;   (在target数据库中建立就可以)

2) 在目录数据库中创建 rman 用户并授权:

create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;

grant connect, resource, recovery_catalog_ownerto rman;   -- 授权

3) 在目录数据库中创建恢复目录

rman catalog rman/rman  (操作系统提示符下, 连接到 目录数据库)

create catalog tablespace rman_ts;  -- 创建恢复目录

4) 登记目标数据库, 一个恢复目录可以注册多个目标数据库, 注册目标数据库的命令为:

rman catalog rman/rman target sys/sys;

register database;


RMAN 连接

连接到目标数据库是指建立在RMAN和目标数据库之间的连接。RMAN可以在无恢复目录和有恢复目录两种方式下连接到目标数据。

另外, 这里也不推荐使用 sys 用户来连接目标数据库(target), 应该另外建立一个用户, 并给这个用户 sysdba 权限.

1、无恢复目录

(1)C:\>rman target /
(2)C:\>rman target sys/password nocatalog

2、有恢复目录

有恢复目录的, 其实, 说白了, 就是分别针对 目标 数据库和 目录 数据库, 分别建立两次链接

(1)首先输入 rman, 进入 rman 命令环境
 -- 连接目标数据库: connect target sys/sys
 -- 连接到恢复数据库: connect catalog rman/rman
 (2)直接一起连接:
 rman target sys/sys catalog rman/rman
在 rman 中有恢复目录的情况下, 连接目标数据库后还需要注册数据库, 即将目标数据库中的控制文件转到恢复目录中, 在同一个恢复目录中只能注册一个目标数据库.
 register database

3、两者的区别:有无恢复目录的区别

(1)nocatalog方式就是用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息。若为catalog则必须要首先要创建目录备份数据库,建立恢复目录。
(2)当使用rman nocatalog恢复时,数据库必须是处于“mount”状态的。而Oracle startup mount的前提条件是control必须存在。因此,你必须在恢复datafile之前先恢复controlfile。使用rman catalog方式时,可以startup nomount然后restore controlfile;但使用rman nocatalog时,必须先用文件方式恢复controlfile。
(3)恢复步骤不同

rman nocatalog恢复:
1) 建立oracle运行环境(包括init或sp文件)
2) 文件方式恢复controlfile到init文件指定的位置 (copy, paste)
3) startup mount
4) rman,恢复datafile
5) alter database open resetlogs

rman catalog恢复:
1) 建立oracle运行环境(包括init或sp文件)
2) rman ,restore controfile
3) alter database mount
4) rman, restore datafile
5) alter database open resetlogs

 


 

RMAN 配置:

一、通道及通道分配

1.通道的概念

        一个通道代表一个到设备(磁盘或磁带)的数据流并且在目标数据库或辅助数据库实例上产生一个相应的服务器会话(server session)

        多个通道则产生多个服务器会话,这些服务器会话(或进程)将完成备份、还原与恢复操作等

        通道分为备份或还原到磁盘的磁盘通道(disk channel)、备份还原到磁带的磁带通道(SBT)

        在对数据库执行备份和恢复前必须先分配通道

        ALLOCATE CHANNEL命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型

        实际上是通过channel来控制备份及恢复时的行为

  通道控制命令的作用:

            控制RMAN使用的OS资源

            影响并行度

            指定I/O 带宽的限制值(设置limit read rate参数)

            定义备份片大小的限制(设置limit kbytes)

            指定当前打开文件的限制值(设置limit maxopenfiles)

2.自动分配通道

        可以使用下列命令来自动分配通道,一旦RMAN设定了下列参数,则RMAN根据这些配置来自动分配通道

            CONFIGURE DEVICE TYPE ...PARALLELISM

            CONFIGURE DEFAULT DEVICE TYPE

            CONFIGURE CHANNEL

                假定在RMAN提示符下执行backup datafile 1,则RMAN会使用预先配置的通道参数为之分配通道

                这些命令backup、restore、delete在非run块中运行时会根据configure命令设定的值自动分配通道

                但上述命令在run块中则需要手动分配通道

 CONFIGURE DEFAULT DEVICE TYPE TO sbt;  -- 默认是 disk

  CONFIGURE DEVICE TYPE DISK PARALLELISM 3; -- 为自动分配通道配置并行度, 影响 I/O 性能等

  -- 配置自动通道首选项

  CONFIGURE CHANNEL DEVICE TYPE DISK

        FORMAT = ‘/BACKUP/RMAN/%U’;  

  CONFIGURE CHANNEL DEVICE TYPE DISK

        MAXPIECESIZE 4G;

3.手动分配通道

        BACKUP,COPY,RESTORE,RECOVER等命令至少需要分配一个通道

        分配一个通道将在目标数据库所在服务器启动一个服务进程,分配的通道实际上是指定了并发度

        可以指定备份到不同的介质,并且可以在手工通道时指定读写速度

        RMAN> RUN {

           2> ALLOCATE CHANNEL ch1 TYPE disk

           3> BACKUP DATAFILE 1,2,4

           4> FORMAT  '/u01/app/oralce/rmanbak/users_%U.bak';}      下面的示例分配了多个通道,且对不同的数据文件使用不同的通道来完成备份工作

        RMAN> RUN {

            2> allocate channel ch1 device type disk;

            3> allocate channel ch2 device type disk;

            4> allocate channel ch3 device type disk;

            5> backup

            6>    incremental level 0

            7>    (datafile 1,4 channel ch1)

            8>    (datafile 2,3 channel ch2)

            9>    (datafile 5,6 channel ch3);

            10> alter system archive log current;}

ALLOCATE CHANNEL命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型

实际上是通过channel来控制备份及恢复时的行为

4.通道配置选项

        connect :是一个Oracle Net连接串。一般不适用于单实例环境

        format : 为通道创建的备份片或映像副本确定路径与文件名

        duration: 控制作业的时间总量,以小时和分钟进行指定

        maxopenfiles:该选项限制RMAN一次能够打开的输入文件数,默认为

        maxpiecesize:限制一个备份集分割的备份片的大小,以字节(默认)、k、m、g为单位

        parms:能够被用于设置sbt_type通道所需的任何变量

        filesperset:备份集中可容纳的文件数

  backup set: 是一个集合, 是由一个或多个物理文件组成, 是一个逻辑单位.

  backup piece: 是真正的一个输出文件, 受到操作系统单个文件的限制, 即 maxpiecesize 这个参数.

  连接 rman 测试:

  rman target / nocatalog   -- 使用操作系统权限登陆

  rman target sys/oracle@trgt  -- 远程方式登陆

 

  show default device type;  -- 查看默认的备份介质, 默认是 disk

  configure default device type clear;  -- 将备份介质还原成默认的disk.

  补充: filesperset 参数:

  filesperset是每个备份集中包含的最大文件个数, 和 channel 没有关系.

allocate channel 提供备份并发度,若平均文件数<filesperset则会按照 平均文件数/备份集 进行备份,若超过则按照filesperset的数量生成备份集;例如:
1、run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup datafile 3,4,5,6 filesperset 3;
release channel ch1;
release channel ch2;
}
平均数是 4(文件数)/2(channel数) = 2 ,小于filesperset 3,则生成2个备份集,每个备份集包含2个数据文件
2、run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup datafile 3,4,5,6 filesperset 1;
release channel ch1;
release channel ch2;
}
则生成4个备份集,每个包含一个数据文件

由以上补充, 可知, 参数 filesperset 不用指定就可以, 因为默认是用 (备份的文件数/chanel)得到的数 和 64 相比较. 只要比64 小, 就用前边的数, 貌似看来一般都会比 64 小

 

 


configure 命令的使用

show 命令

  直接 show all 就可以了

可以显示出RMAN配置参数为:
 
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
 CONFIGURE BACKUP OPTIMIZATION OFF; # default
 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
 CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
 CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 CONFIGURE SNAPSHOT CONTROLFILE NAME TO‘C:ORACLE..SNCFTEST.ORA’; #default

1.configure retention policy to redundancy 1: 是用来决定那些备份不再需要了,它一共有三种可选项,分别是  CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;  CONFIGURE RETENTION POLICY TO REDUNDANCY 5;  CONFIGURE RETENTION POLICY TO NONE;  

第一种recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。  

第二种redundancy是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。它的默认值是1份。  

第三种不需要保持策略,clear将恢复回默认的保持策略。  

一般最安全的方法是采用第二种保持策略。 可以设置这个值为 5  

2.CONFIGURE BACKUP OPTIMIZATION OFF  默认值为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。  

3.Configure default device type to disk:  是指定所有I/O操作的设备类型是硬盘或者磁带,默认值是硬盘  磁带的设置是CONFIGURE DEFAULT DEVICE TYPE TO SBT;  

4.CONFIGURE CONTROLFILE AUTOBACKUP OFF  强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,默认值为关闭。这样可以避免控制文件和catalog丢失后,控制文件仍然可以恢复。  

5.CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'  是配置控制文件的备份路径和备份格式  

6.CONFIGURE DEVICE TYPE DISK PARALLELISM 1;  是配置数据库设备类型的并行度。  

7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;  是配置数据库的每次备份的copy数量,oracle的每一次备份都可以有多份完全相同的拷贝。  

8.CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1  是设置数据库的归档日志的存放设备类型  

9.CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLE…SNCFTEST.ORA'  是配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性。  

10.CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';  是配置备份文件的备份路径和备份格式  

CONFIGURE CHANNEL DISK CLEAR;用于清除上面的信道配置  

CONFIGURE EXCLUDE FOR TABLESPACE <tablespace> [CLEAR];此命令用于将指定的表空间不备份到备份集中, 此命令对只读表空间是非常有用的。   1.将备份文件存储到指定路径,如e:\backupb     configure channel device type disk format 'e:\backupb\%d_db_%u';  后面的%d_db_%u是存储格式  2.我们也可以单独指定control file存储在另一个路径:如e:\backupcontrol  configure controlfile autobackup format for device type disk to 'e:\backupcontrol\%F';  后面的%F是存储格式

经常使用的设置:

1) configure controlfile autobackup on;  -- 默认是 off

2) configure device type disk parallelism 2 backup type to backupset;  -- 默认是 1

3) 修改 控制文件保存的时间, 使用 nocatalog 方式, 修改参数 control_file_record_keep_time, 默认是 7 天, 可以修改 0~365 的任何值, RMAN 采用nocatalog模式进行备份时,就会有一个问题。 当我们使用catalog模式的时候,RMAN 备份的信息都会存放到catalog目录里。 如果没有使用catalog目录,那么RMAN备份的信息就会保存到控制文件里。 RMAN 的这些备份信息对恢复来说非常重要,如果没有这些信息,是无法使用RMAN 进行恢复的。 所以,如果采用nocatalog模式,我们要主备备份控制文件,同时,要将控制文件记录的保存时间设置为不小于选中数据库备份的周期,否则就可能在备份介质上有数据库备份,但是控制文件不存在与备份相关的备份记录,在这种情况下,将无法恢复这些较早的文件。

alter system set control_file_record_keep_time = 20 scope=both; 

要注意: 配置保存策略不会导致自动删除备份,需要使用delete obsolete 命令才能删除过期的备份集。 在report obsolete 命令时显示到期的备份集。 如果列出的某个文件不能被删除,需要鱼腥crosscheck 命令,否则,Oracle 删除delete obsolete命令输出的所有项。如:

report obsolete;

delete noprompt obsolete;

crosscheck backup;

delete noprompt expired backup;

 

List 命令

  列出备份集, 数据文件镜像

  列出指定表空间任意数据文件的备份集或镜像副本

  列出指定范围内包含归档日志的备份集或镜像副本

list incarnation;

汇总查询:--如果备份文件多的话多用这个list命令可以对备份文件有个总体了解。

  list backup; 列出备份详细信息

  list backup by file;

  说明:按照文件类型列出以下四种类型列表:
  数据文件备份列表、已存档的日志备份列表、控制文件备份列表、SPFILE 备份的列表

  list backup of database summary;

  list backup of tablespace users;

  list backup of archivelog all;  查看已经备份的 archive log 情况.

  list archivelog all;  查看目前所有的 archivelog 文件. (可能包含已经备份的, 除非你在备份时有参数 delete input file 删除了)

  list backup verbose;

  list backup of spfile;

  list backup of controlfile;

  list backup summary;

  简述可用的备份, TY: B代表备份, LV: F代表全备fullbackup, A表示 Archivelog, 0,1,2 表示备份级别, S表示状态, A表示available可用, X表示expried过期

备份列表
===============
关键字     TY LV S 设备类型 完成时间   段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
11      B  F  A DISK        02-7月 -13 1       1       NO         TAG20130702T162726
12      B  F  A DISK        14-2月 -14 1       1       NO         TAG20140214T140119
13      B  F  A DISK        14-2月 -14 1       1       NO         TAG20140214T140119
14      B  F  A DISK        21-2月 -14 1       1       NO         TAG20140221T125325
15      B  F  A DISK        21-2月 -14 1       1       NO         TAG20140221T125325
16      B  A  A DISK        24-2月 -14 1       1       NO         TAG20140224T125128

  list backup of datafile 1 [n | <dir>];

  list backup of archivelog from sequence 1000 until sequence 1020;

  list backupset tag=TAG20140317T155753;

  list expried backup; 列出过去的备份文件

Report命令

  Report命令显示存储仓库(Repository)中的详细的分析信息

  最常使用的是report obsolete; report schema;

  例如, 那些文件需要备份, 那些备份可以被删除, 那些文件不可恢复 等

  report schema; 报告目标数据库的物理结构

  report need backup报告需要备份的数据文件(根据条件不同)

  report need backup days 3; 最近三天没有备份的数据文件(如果出问题的话,这些数据文件将需要最近3天的归档日志才能恢复)

  report need backup redundancy 3; 报告出冗余次数小于3的数据文件

  report need backup recovery window of 3 days; 报告出恢复需要3天归档日志的数据文件

  report obsolete; 报告已经丢弃的备份(前提是设置了备份策略)

  report unrecoverable; 报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已经过期)

  report schema at time ‘sysdate – 7’;

  report need backup days 2 tablespace system;

Delete 命令

  删除相关的备份集火镜像副本的物理文件, 同时将删除标记 delete 更新到控制文件.

  delete backupset;

  delete backupset n;

  delete obsolete;   -- 删除荒废

  delete noprompt obsolete;  -- 不提示, 删除荒废
  delete noprompt expired backup;  -- 不提示, 删除不在磁盘上的备份集(可以先用crosscheck同步确认一下)

  delete obsolete redundancy 2;

  delete noprompt copy;

  delete noprompt backupset tag TAG20140317T14432;

  delete obsolete recovery window of 7 days;

  delete expired backupset;

  delete expired copy;

  delete expired archivelog all;

Crosscheck 命令

  用于检验存储仓库中的备份集或镜像副本, 执行该命令后, 将更新仓储仓库中的刚刚检验的对象状态, 便于后续操作处理.

  RMAN目录和物理备份目的地不同步的情况下,我们可以使用crosscheck命令来效验控制文件或恢复目录中的RMAN信息是否与备份介质上的实际物理备份集片相同。

使用crosscheck 命令时,我们关心每个备份集或者副本的状态。 如果使用控制文件,用于备份集片的v$backup_set 视图和用于副本的v$databfile_copy 视图中的status列列出了每个备份集或副本的状态码;如果使用恢复目录,则在备份集片的RC_BACKUP_SET和副本的RC_DATAFILE_COPY中列出了每个备份集或副本的状态码。 在不同的备份状态码中,我们关心以下两种状态:

(1)AAvailable:可用)RMAN 认定该项存在于备份介质上

(2)XExpired:不可用):这个备份集片或副本上存储的RMAN目录(即控制文件或恢复目录)中,但是并没有物理存在于备份介质上。

使用crosscheck 命令的目的是将RMAN目录的状态设置为AVAILABLE或者EXPIRED 执行crosscheck时,RMAN检查目录中列出的每个备份集或副本并且判断他们是否存在与备份介质上。 如果备份集或副本不存在与备份介质上,它就会被标记为expired, 并且不能用于任何还原操作;如果备份集或副本存在与备份介质上,它就会维持available状态。 如果以前被标记为expired 的备份集或副本再次存在于备份介质上,crosscheck 命令就会将它标记回available

  RMAN 备份检验的几种状态

  expired: 对象不存在于磁盘或磁带。当一个备份集处于expired状态,则该备份集中所有的备份片同样处于expired状态

  available: 对象处于可用状态。当一个备份集可用,则该备份集内的所有备份片同样可用

  unavailabe: 对象处于不可用状态。当一个备份集不可用,则该备份集内的所有备份片同样不可用

  注:expired不等同于obsolette。

expired 与 obsolette 的区别:

对于EXPIRED状态的产生,与crosscheck命令是密切相关的,RMAN通过crosscheck命令检查备份是否存在于备份介质上, 如果不存在,则状态由AVAILABLE改为EXPIRED. 例如: 将备份控制文件的备份删除,再使用crosscheck进行检查,该备份的状态由AVAILABLE改为EXPIRED.

对于obsolete状态,是针对MAN备份保留策略来说的,超过了这个保留策略的备份,会被标记为obsolete,但其状态依旧为AVAILABLE,我们可以使用report obsolete来查看已废弃的备份.

  校验时的限制

  目标数据库必须被启动

  对于磁盘上的备份集,校验时不需要使用通道。而磁带上的备份集则必须使用通道,如果未为磁带配置自动通道,则必须手动分配

  可以校验执行resetlogs之前的备份,即可以校验不同的incarnation

  crosscheck backup;

  RMAN> crosscheck backupset; --校验备份集

  RMAN> crosscheck copy; --校验镜像副本

  RMAN> crosscheck backup of controlfile; --校验备份的控制文件

  RMAN> crosscheck backup of archivelog all; --校验所有备份的归档日志

  RMAN> crosscheck backup of datafile 1,2; --校验datafile 1,2

  RMAN> crosscheck backup of tablespace sysaux,system; --校验表空间sysaux,system

  RMAN> crosscheck backup completed between '13-OCT-10' and '23-OCT-10'; --校验时间段,时间段格式由NLS_DATE_FORMAT设置

  RMAN> crosscheck backupset 1067,1068; --校验指定的备份集

 

 backup 常用命令

1.设置备份标记        

backup database tag='full_bak1';         注:每个标记必须唯一,相同的标记可以用于多个备份只还原最新的备份。

2.设置备份集大小(一次备份的所有结果为一个备份集,要注意备份集大小)

        backup database maxsetsize=100m tag='datafile1';

         注:maxsetsize限定备份集的大小。所以必须大于数据库总数据文件的大小,否则会报错。

      RMAN-06183: datafile or datafile copy larger than MAXSETSIZE: file# 1 /data/oradata/system01.dbf

3.设置备份片大小(磁带或文件系统限制)

run {

        allocate channel c1 type disk maxpicecsize 100m format '/data/backup/full_0_%U_%T';        

        backup database tag='full_0';        

    release channel c1;        

}        

可以在allocate子句中设定每个备份片的大小,以达到磁带或系统限制。        

也可以在configure中设置备份片大小。        

Configure channel device type disk maxpiecesize 100 m;        

configure channel device type disk clear;

4.备份集的保存策略        

  backup database keep forever;                  --永久保留备份文件, 这种需要有恢复目录的支持

  backup database keep until time='sysdate+30'; --保存备份30天

5.重写configure exclude命令

        backup databas noexclude keep forever tag='test backup';

6.检查数据库错误

        backup validate database;   使用 rman 扫描数据库的物理和逻辑错误, 但是并不真正执行备份操作.   

 使用RMAN来扫描数据库的物理/逻辑错误,并不执行实际备份。
   

7.跳过脱机,不可存取或只读文件

        backup database skip readonly;

        backup database skip offline;

        backup database skip inaccessible;

        backup database ship readonly skip offline ship inaccessible;

8.强制备份

        backup database force;
9.基于上次备份时间备份数据文件

        1>只备份添加的新数据文件

            backup database not backed up;

        2>备份"在限定时间周期内"没有被备份的数据文件

            backup database not backed up since time='sysdate-2';

10.备份操作期间检查逻辑错误

        backup check logical database;

        backup validate check logical database;
11.生成备份副本

        backup database copies=2;
12.备份控制文件

        backup database device type disk includ current controlfile;

 


 

数据库初始化参数

  control_file_record_keep_time : 指定控制文件内RMAN信息被覆盖前保留的最小天数

  db_recovery_file_dest : 如果将 RMAN 备份到此处, 需要设置该参数

  db_recovery_file_dest_size: 如果将 RMAN 备份到此处, 需要设置该参数

环境变量参数

  nls_date_format : 设定日期

  nls_lang: 设定环境变量影响 restore, recover, report 等命令


Format 格式串:

 

使用FORMAT参数时可使用的各种替换变量,如下(注意大小写)所示:

%aOracle数据库的activation IDRESETLOG_ID

%c:备份片段的复制数(从1开始编号,最大不超过256)。

%dOracle数据库名称。

%D:当前时间中的日,格式为DD

%e:归档序号。

%f:绝对文件编号。

%F:基于"DBID+时间"确定的唯一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBIDYYYYMMDD为日期,QQ是一个1256的序列。

%h:归档日志线程号。

%IOracle数据库的DBID

%M:当前时间中的月,格式为MM

%N:表空间名称。

%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8。比如数据库名JSSBOOK,则生成的名称则是JSSBOOKx

%p:备份集中备份片段的编号,从1开始。

%s:备份集号。

%t:备份集时间戳。

%T:当前时间的年月日格式(YYYYMMDD)。

%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。

%U:默认是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式,执行不同备份操作时,生成的规则也不同,如下所示:

生成备份片段时,%U=%u_%p_%c

生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u

生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u

生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u

%Y:当前时间中的年,格式为YYYY

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

 


常用的 RMAN 设置

1) 设置 auto backup control file, CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F' 

2) 将 redundancy 设置为 5, CONFIGURE RETENTION POLICY TO REDUNDANCY 5; 或 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

3) parallelism 设置为 2, 但是貌似这个必须是 企业版的 oracle 才可以 CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;

个人喜欢的备份格式:

全备: full_%d_%U

datafile : df_%d_%U

tablespace :tb_%d_%U