今天执行现场的建表空间的语句时,报错了:ora-00059 maximum number of DB_FILES exceeded,在网上找到了解决办法:
数据库参数显示,db_files 设置为 200, 而 select count(*) from v$datafile; 之后得到的数据也是 200 , 说明已经达到了设置的最大值。
SQL> show parameter db_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200
通过 SQL> alter database backup controlfile to trace ;
查看控制文件:CREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS NOARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 1000
MAXINSTANCES 1
MAXLOGHISTORY 292
由于db_files 参数值 200没有超过 maxdatafiles 1000的大小,所以可以通过直接加大参数db_files 值来防止此错误出现,以便正确加入数据文件
SQL> alter system set db_files=1000 scope=spfile;
System altered.
SQL> shutdown immediate
SQL> startup
SQL> sho parameter db_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 1000
再建表空间时,问题没有了。