select * from v$parameter where name='db_files';
select * from v$controlfile_record_section where type='DATAFILE';
SELECT COUNT(*) FROM Dba_Data_Files;
测试前信息数据文件的信息如下:
--模拟测试环境
--生成测试用的添加数据文件的语句 # !/bin/bash for ((i=4;i<197;i++)) do echo "alter tablespace users add datafile '/U01/app/oracle/product/11.2.0.4/test/user${i}.dbf' size 1m;">>/home/oracle/addfilenew.sql done |
可以看到控制文件中的maxdatafiles值翻倍增加了,增大到200.
--db_files的最大值为200,现在已经199个文件了,在添加一个看测试效果:
可以看到当数据文件个数达到了db_files参数设置的值,会报错。
可以通过修改参数文件中的db_files参数解决,但是需要重启数据库生效。
alter system set db_files=300 scope=spfile;
show parameter db_files;
alter tablespace users add datafile '/U01/app/oracle/product/11.2.0.4/test/user198.dbf' size 1m;