Oracle 报错 ORA-00059:maximum number of DB_FILES exceed


报这个错误的原因是因为数据文件数量已经达到db_files这个参数的值,如果想增加数据文件的数量,必须修改db_files参数值,然后重启数据库。
而修改db_files参数值,还必须明确另一个参数的值,那就是存在于控制文件中的 maxdatafiles。

1. 查看系统限制db_files数,默认为200
show parameter db_files

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200

--查看系统现有多少个文件数
select count(1) from dba_data_files;

2. 直接修改控制文件参数
sqlplus / as sysdba
alter system set db_files=1000 scope=spfile;
shutdown immediate;
startup;

注:rac下最好两台主机都执行下

3. 再次查看 db_files参数,变为1000即可


##############################################################
以下是查看控制文件参数的方法:
查看控制文件中的maxdatafiles值可以通过创建控制文件的追踪文件来查看

--备份控制文件到trace
alter database backup controlfile to trace;
在udump目录下,找到最新的追踪文件,即为新生成的控制文件的追踪文件。
在10g之前还有,bdump、cdump、udump,
在11g里统一放在了 oracle/diag/rdbms/orcl/orcl 里了

--查看日志文件位置
show parameter dump_dest

查看 cat xxx.trc | grep MAXDATAFILES
10G是 200, 11G默认为啥是100,但db_filse是200, 搞不懂


-----------------------------------------------------
--查看控制文件位置
show parameter spfile

--备份一份控制文件
create pfile='/home/oracle/db.ora' from spfile;

 

posted @ 2021-02-28 14:31  莫让年华付水流  阅读(2074)  评论(0编辑  收藏  举报