|
经过测试,结果如下:
我的版本:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE 9.2.0.7.0 Production
TNS for 32-bit Windows: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production
SQL> show parameter db_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200
也就说db_files的默认值是200,而controlfile里面的maxdatafile默认值为100。
而上次测试的结果是,一个数据库的数据文件总数(不包括临时文件)可以大于maxdatafile
如我的数据里面:
select count(*) from dba_data_files
----
115
下面继续增加数据文件:
alter tablespace tbs1 add datafile
'D:\ORACLE\ORADATA\LX\TBSDATA104.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA105.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA106.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA107.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA108.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA109.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA110.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA111.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA112.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA113.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA114.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA115.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA116.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA117.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA118.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA119.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA120.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA121.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA122.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA123.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA124.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA125.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA126.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA127.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA128.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA129.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA130.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA131.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA132.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA133.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA134.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA135.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA136.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA137.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA138.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA139.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA140.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA141.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA142.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA143.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA144.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA145.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA146.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA147.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA148.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA149.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA150.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA151.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA152.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA153.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA154.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA155.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA156.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA157.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA158.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA159.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA160.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA161.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA162.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA163.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA164.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA165.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA166.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA167.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA168.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA169.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA170.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA171.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA172.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA173.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA174.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA175.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA176.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA177.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA178.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA179.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA180.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA181.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA182.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA183.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA184.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA185.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA186.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA187.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA188.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA189.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA190.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA191.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA192.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA193.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA194.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA195.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA196.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA197.DBF' size 1M ,
'D:\ORACLE\ORADATA\LX\TBSDATA198.DBF' size 1M
autoextend off;
这里增加95个文件加上原有的115个也就是210个文件,执行上面的语句得到下面的错误:
ORA-00059: maximum number of DB_FILES exceeded
下面来修改db_files 的值:
SQL> alter system set db_files=210;
alter system set db_files=210
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set db_files=210 scope=spfile;
System altered.
看出db_files非动态参数,需要重启数据库,才能起作用。
重启数据库:
SQL> show parameter db_files
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------
db_files integer 210
db_files起作用,然后再执行增加数据文件的语句,结果成功,这时数据库的数据文件正好为210:
select count(*) from dba_data_files
----
210
再增加数据文件就超过了db_files 的值210,就会报:
ORA-00059: maximum number of DB_FILES exceeded
错误。到这里我们就对db_files和maxdatafile的作用弄明白了。 |
|