程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle中臨時文件File#和Db_files關系

Oracle中臨時文件File#和Db_files關系

編輯:關於Oracle數據庫

    在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其實指的就是臨時文件。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved