一.控制檔案中的 MAXDATAFILES 參數
有關Oracle 的控制檔案說明,參考我之前的Blog:
Oracle 控制檔案
http://blog.csdn.net/tianlesoftware/article/details/4974440
在Oracle 的控制檔案中有一個參數:MAXDATAFILES,其用來控制資料庫最大支援的datafile 的個數。在使用DBCA 建立執行個體時可以修改這個參數。
也可以通過dump 控制檔案來查看這個參數:
SQL> oradebug setmypid
Statement processed.
SQL> alter database backup controlfileto trace;
Database altered.
SQL> oradebug tracefile_name
d:\app\administrator\diag\rdbms\newccs\newccs\trace\newccs_ora_6960.trc
trace 裡的內容:
CREATE CONTROLFILE REUSE DATABASE"NEWCCS" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY292
--這裡的100 是控制檔案中的預設值
二.DB_FILES 參數
Oracle 11gR2 上對這個參數的說明:
http://docs.oracle.com/cd/E11882_01/server.112/e25513/initparams057.htm
Property |
Description |
Parameter type |
Integer |
Default value |
200 |
Modifiable |
No |
Range of values |
Minimum: the largest among the absolute file numbers of the datafiles in the database Maximum: operating system-dependent |
Basic |
No |
Oracle RAC |
Multiple instances must have the same value. |
DB_FILES specifies the maximum numberof database files that can be opened for this database. The maximum valid valueis the maximum number of files, subject to operating system constraint, thatwill ever be specified for the database, including files to be addedby ADD DATAFILE statements.
--DB_FILES 參數指定資料庫能開啟的最大的datafiles 的數量,這個最大值也會受作業系統的限制。
If you increasethe value of DB_FILES, then you must shut down and restart all instancesaccessing the database before the new value can take effect. If you have aprimary and standby database, then they should have the same value for thisparameter.
--如果我們增加DB_FILES 的值,那麼必須重啟instance,才能讓修改生效。 如果是DG 環境,也需要保證主備庫參數一致。
在Oracle 11gR2 中,這個參數的預設值是200,比控制檔案的預設值大。
三.控制檔案中的 MAXDATAFILES 和 DB_FILES 關係
MOS 文檔:kccrsz: expanded controlfile message in"alert.log" [ID 101020.1]
Problem Description
-------------------
The "alert.log" file shows thefollowing message:
kccrsz: expanded controlfile section 4 from 17 to 18 records
number of logical blocks in section remains at 2
Completed: alter tablespace tb1 add datafile
Solution Description
--------------------
Starting inOracle8 the controlfile is automatically expanded. A new datafile is addedbeyond the maxdatafiles limited specified in the control file.
--從Oracle 8 開始,控制檔案是自動擴充的,當新添加的datafile時,datafile的個數超過了控制空maxdatafiles 參數的限制時,maxdatafiles參數值會自動的增加。
--這個驗證可以通過dump 控制檔案來查看
This alsohappens if new records are added to the "log_history" section of thecontrol files and there are no entries that could be replaced.
--控制檔案的自動擴充也發生在的section 不夠時。
The routine thatperforms the expansion writes this message to the alert log. The messagesspecifies the section that was expanded and the amount of the expansion. Pleasenote that this message cannot be turned off.
--執行擴充操作時會往alert log 裡寫一些log 資訊,就是上面部分的內容,這部分內容列出了擴充的section和擴充的數量,這個顯示資訊不能被關閉。
The automatic expansion only occurs up to the limit of the "init.ora" parameter "DB_FILES".
--注意,控制檔案中的自控擴充的datafile 的最大值就是我們DB_FILES 參數的值。 所以這也是我們之前看的,DB_FILES 參數值比控制檔案中預設值大的原因。
總結一下:
資料庫中真正的最大的datafiles 的個數由DB_FILES 參數決定,雖然控制檔案中也有限制,但是這個控制檔案中的限制參數會自動的增加,直到到達DB_FILES的值。
-------------------------------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Email: tianlesoftware@gmail.com
Skype: tianlesoftware
Blog: http://www.tianlesoftware.com
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook:http://www.facebook.com/tianlesoftware
-------加群需要在備忘說明Oracle資料表空間和資料檔案的關係,否則拒絕申請----
DBA1 群:62697716(滿); DBA2 群:62697977(滿) DBA3 群:62697850(滿)
DBA 超級群:63306533(滿); DBA4 群:83829929 DBA5群: 142216823
DBA6 群:158654907 DBA7 群:172855474 DBA總群:104207940