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的"生日".