在v$tempfile与v$sort_usage之关系解析一文中我们注意到对于临时文件的绝对文件号(AFN)Oracle的分配规则和常规数据文件并不相同
实际上临时文件的绝对文件号应该等于db_files + file#
我们看一下实例SQL> select indxtfnumtfafntfcsz
from x$kcctf;
INDXTFNUMTFAFNTFCSZ
SQL> show parameter db_files
NAME TYPEVALUE
db_files integer
SQL> select file#name from v$tempfile;
FILE# NAME
+ORADG/danaly/tempfile/temp
SQL>
所以在Oracle文档中v$tempfilefile#被定义为The absolute file number是不确切的经常的我们可能会在警报日志文件中看到类似如下的错误
Corrupt block relative dba: xca (file block )
Bad header found during buffer read
Data in bad block
type: format: rdba: xa
last change scn: xfbeb seq: x flg: x
consistency value in tail: xbeb
check value in block header: x block checksum disabled
spare: x spare: x spare: x
这里的file 其实指的就是临时文件