实际上,临时文件的绝对文件号应该等于db_files + file#。
我们看一下实例:
SQL> select indx,tfnum,tfafn,tfcsz 2 from x$kcctf; INDX TFNUM TFAFN TFCSZ ---------- ---------- ---------- ---------- 0 1 201 2560 SQL> show parameter db_files NAME TYPE VALUE ------------------------------------ ----------- ------ 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其实指的就是临时文件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84679/,如需转载,请注明出处,否则将追究法律责任。