一 今天发现有个表空间快满了,想添加两个数据文件,结果报错 ORA-00059:maximum number of DB_FILES exceed 查看系统的db_files参数为:200,而数据文件总数也确实为200,报这个错误正常。 SQL> show parameter db_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_files integer 200 SQL> SQL> select count(1) from dba_data_files; COUNT(1) ---------- 200 SQL> 使用oerr 工具可以参看到如下信息: ORA-00059: maximum number of DB_FILES exceededCause: The value of the DB_FILES initialization parameter was exceeded.Action: Increase the value of the DB_FILES parameter and warm start. 报这个错误的原因是因为数据文件数量已经达到db_files这个参数的值,如果想增加数据文件的数量,必须修改db_files参数值,然后重启数据库。 而修改db_files参数值,还必须明确另一个参数的值,那就是存在于控制文件中的 maxdatafiles。 db_files和maxdatafiles的关系与区别 区别: 存在位置不同 db_files存在于spfile文件或pfile文件中。 maxdatafiles存在于控制文件中,该值可以在创建数据库时指定。 关系 当db_files<maxdatafiles时,那么只需要修改db_files的值,并重启数据库即可解决ORA-00059。 当db_files=maxdatafiles时,则需要重新创建控制文件,并修改db_files值,重启数据库来解决该问题。 查看控制文件中的maxdatafiles值可以通过创建控制文件的追踪文件来查看 SQL> alter database backup controlfile to trace; 数据库已更改。 SQL> 在udump目录下,找到最新的追踪文件,即为新生成的控制文件的追踪文件。 该数据库的maxdatafiles值为2048,因此我只需修改db_files的参数值就可以解决该问题。 由于是RAC数据库,因此在修改的时候需要加上 sid='*' 这个参数。修改的顺序为(这是我个人实施的顺序): 1、在所有节点上分别执行命令: alter system set db_file=1024 scope=spfile sid='*'; #注意,这里的sid没有指明用那个节点的sid,*表示所有节点 注:我当时执行的时候考虑到设置了 sid='*' 这个参数,因此只在一个节点上执行,当重启另一节点数据库时候报错, 具体错误信息忘记保存,意思就是当前所使用的db_files的值和另一个节点不匹配。因此我又在该节点执行了一次如上的命令,再次重启数据库成功。 2、关闭所有节点数据库。 3、顺序重启所有节点数据库。 注:这里要注意,是关闭所有节点后,再依次重启,不然会造成db_files值和另一节点不匹配的报错。 至此,问题解决,再添加数据文件成功。 如下是官方关于db_files这个参数的说明 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 Real Application Clusters You must set this parameter for every instance, and multiple instances must have the same value. DB_FILES specifies the maximum number of database files that can be opened for this database. The maximum valid value is the maximum number of files, subject to operating system constraint, that will ever be specified for the database, including files to be added by ADD DATAFILE statements. If you increase the value of DB_FILES, then you must shut down and restart all instances accessing the database before the new value can take effect. If you have a primary and standby database, then they should have the same value for this parameter. 二 DB_FILES 定义了oracle数据中数据文件的个数,当数据文件个数超过这个参数设定的值就会报ORA-00059这个错误。 解决办法: show parameter db_files; --查看当前设置的值 sqlplus / as sysdba alter system set db_files=更大的值 scope=spfile; shutdown immediate; startup; 说明: 这个参数设置的值的大小不会影响效率,只是单纯的控制数据文件的个数 RAC生产环境下面修改该参数步骤如下: (1)先在任意一个节点查看该参数值 SQL> show parameter db_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_files integer 200 在任意一个节点执行,这里sid=’*’是指在所有实例上生效 SQL> alter system set db_files=350 scope=spfile sid='*'; 将所有节点上将监听全部停了 [grid@RAC1 ~]$ srvctl stop listener [grid@RAC1 ~]$ srvctl status listener Listener LISTENER is enabled Listener LISTENER is not running 在所有节点上执行Kill LOCAL=NO进程 Kill所有的外部链接 ps –ef|grep LOCAL=NO|grep –v grep|awk '{print $2}'|xargs kill -9 (5)在所有节点上执行 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. (6)按照顺序将库启动,不要在一个库未启动完成的时候去启动另外一个库,否则会出现下面错误 ORA-01105: mount is incompatible with mounts by other instances ORA-01174: DB_FILES is 350 buts needs to be 320 to be compatible
ORA-00059:maximum number of DB_FILES exceed 解决
来源:这里教程网
时间:2026-03-03 13:43:19
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle RAC+DG环境搭建(CentOS 7+Oracle 12C)(八) 安装数据库软件
- Oracle RAC+DG环境搭建(CentOS 7+Oracle 12C)(五)配置共享存储
- Oracle RAC+DG环境搭建(CentOS 7+Oracle 12C)(一)配置实验虚拟机
- Oracle RAC+DG环境搭建(CentOS 7+Oracle 12C)(四) 操作系统参数及环境变量设置
- Debian日志安全分析实战指南(手把手教你进行系统安全日志审计与监控)
Debian日志安全分析实战指南(手把手教你进行系统安全日志审计与监控)
26-03-03 - 1 sql优化大幅度降低系统CPU开销
1 sql优化大幅度降低系统CPU开销
26-03-03 - 宜信DBA实践|全面解析Oracle等待事件的分类、发现及优化
宜信DBA实践|全面解析Oracle等待事件的分类、发现及优化
26-03-03 - Oracle RAC+DG环境搭建(CentOS 7+Oracle 12C)(九) 创建数据库
- Debian自动化部署实战指南(从零开始掌握无人值守安装与批量配置)
Debian自动化部署实战指南(从零开始掌握无人值守安装与批量配置)
26-03-03 - Oracle RAC+DG环境搭建(CentOS 7+Oracle 12C)(七) 配置ASM共享磁盘组
