日期:2014-05-16 浏览次数:20693 次
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的"生日".