Oracle中臨時檔案File#和Db_files關係(zt)

tolywang發表於2007-06-21
在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          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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章