Oracle 11g db_files 與 控制檔案中的 maxdatafiles 的關係及區別

tolywang發表於2014-11-29

Oracle 11.2.0.3  

        當使用CREATE DATABASE命令或CREATE CONTROFILE命令,MAXDATAFILES引數決定了控制檔案中關於資料檔案的大小尺寸——對控制檔案的大小也有影響。但是,如果新增一個資料檔案時,其編號已經超出了MAXDATAFILES的設定值,但是小於或等於DB_FILES的設定值,控制檔案會自動擴充套件以滿足容納更多的資料檔案資訊。

      有人測試過,得出如下結論: 如果 db_files 足夠,每當超過控制檔案中的 maxdatafiles,maxdatafiles會翻倍增加(動態增加)。有興趣可以自己測試一下。

      假設,db_files = 600 ,透過trace檢視控制檔案中的 maxdatafiles =500 ,當資料檔案增加到 501個的時候,maxdatafiles 會自動擴充套件到 500 *2= 1000 ,  我們增加檔案數到 601的時候, 系統會因為 db_files=600而報錯 ORA-00059: 超過 DB_FILES 的最大值。 我們需要增加 db_files 引數值,不能動態更改,需要重新啟動資料庫生效。 比如增加到 db_files = 4096, 那麼當資料檔案增加到 1001 時, 控制檔案中的 maxdatafiles 會自動翻倍,增加到 1000 * 2 = 2000,  以此類推, 檔案增加到 2001 時,沒有超過db_file 4096 , 不會報錯,但是控制檔案中的 maxdatafiles 會翻倍,增加到 2000*2=4000 個 。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-1350873/,如需轉載,請註明出處,否則將追究法律責任。

相關文章