在v$tempfile与v$sort_usage之关系解析一文中,我们注意到对于临时文件的绝对文件号(afn),oracle的分配规则和常规数据文件并不相同。 实际上,临时文件的绝对文件号应该等于db_files + file#。 我们看一下实例:sql select indx,tfnum,tfafn,tfcsz 2 from x$kc
在v$tempfile与v$sort_usage之关系解析一文中,我们注意到对于临时文件的绝对文件号(afn),oracle的分配规则和常规数据文件并不相同。
实际上,临时文件的绝对文件号应该等于db_files + file#。
我们看一下实例:sql> select indx,tfnum,tfafn,tfcsz
2 from x$kcctf;
indx tfnum tfafn tfcsz
---------- ---------- ---------- ----------
0 1201 2560
sql> show parameter db_files
name typevalue
------------------------------------ ----------- ------
db_files integer 200
sql> select file#,name from v$tempfile;
file# name
--------- -----------------------------------------
1 +oradg/danaly/tempfile/temp.267.600173887
sql>
所以在oracle文档中v$tempfile.file#被定义为the absolute file number是不确切的。经常的,我们可能会在警报日志文件中看到类似如下的错误:
corrupt block relative dba: 0x00c0008a (file 202, block 138)
bad header found during buffer read
data in bad block -
type: 8 format: 2 rdba: 0x0140008a
last change scn: 0x0000.431f8beb seq: 0x1 flg: 0x08
consistency value in tail: 0x8beb0801
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
这里的file 202其实指的就是临时文件。
,