日期:2014-05-16  浏览次数:20586 次

RMAN备份FORMAT格式中%a的含义

    oracle文档对%a的描述是:

%a   Specifies the activation ID of the database.


    rman备份并保存,查询%a

RMAN> backup tablespace users format '/home/oracle/think_%a';


    由此,可知%a为:790774120

    查询x$kccdi

sys@ORCL> SELECT didbn,dirlc,dirlc_i FROM x$kccdi;

DIDBN     DIRLC                   DIRLC_I
--------- -------------------- ----------
ORCL      08/08/2012 11:28:40   790774120


    由此,可知%a便是DIRLC_I

    查询v$database_incarnation

sys@ORCL> select INCARNATION#,RESETLOGS_TIME,RESETLOGS_ID from v$database_incarnation;

INCARNATION# RESETLOGS_TIME      RESETLOGS_ID
------------ ------------------- ------------
           1 2005/06/30 19:09:40    562360180
           2 2012/07/15 16:40:15    788719215
           3 2012/08/08 10:35:10    790770910
           4 2012/08/08 11:28:40    790774120


    由此,可知%a、resetlogs_id和dirlc_i,此三者相同。RESETLOGS_ID显然是由RESETLOGS_TIME决定的。故此三者“同气连技”。

    其实这个RESETLOGS_ID的值在V$ARCHIVED_LOG视图中也可以找到。而且这个值对应的就是归档日志格式中的%r。

    %r官方文档解释:

resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database


    如果进行了不完全恢复,这个变量就十分重要。

    查询v$archived_log

sys@ORCL> select first_time,name from v$archived_log where first_time='2012/08/08 11:28:40';

FIRST_TIME          NAME
------------------- ------------------------------------
2012/08/08 11:28:40 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2012_08_08/o1_mf_1_1
                    _824467pw_.arc


    可知,%r为824467pw

    至此,小结:%a、resetlogs_id、dirlc_i和%r,都是oracle database的"生日".