ORA00059:maximum number of DB_FILES exceeded

2023年 8月 26日 54.6k 0

处理办法:调大db_files(需重启实例生效)

SQL> select value from v$parameter where name = 'db_files';

VALUE
--------------------------------------------------------------------------------
200

SQL> select records_total from v$controlfile_record_section where type = 'DATAFILE';

RECORDS_TOTAL
-------------
1024

SQL> alter system set db_files=5000 scope=spfile sid='*';

System altered.

--重启数据库集群实例

SQL> select value from v$parameter where name = 'db_files';

VALUE
--------------------------------------------------------------------------------
5000

SQL> select records_total from v$controlfile_record_section where type = 'DATAFILE';

RECORDS_TOTAL
-------------
1024 --这个不变化,如果文件个数超过1024了,自动扩,无需关心

SQL> show parameter db_files;

NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
db_files integer
5000
SQL>



相关参考:
How to increase db_files parameter? (Doc ID 2658128.1)

There are 2 limits, DB_FILES is a hard limit and MAXDATAFILES a soft limit.

DB_FILES is the limit on the total number of files associated with a particular INSTANCE of a database.

MAXDATAFILES is specified in the clause the last time CREATE DATABASE or CREATE CONTROLFILE was executed (database limit).

When MAXDATAFILES is reached, the controlfile will expand automatically (as long as there is disk space available) so that the data files section can accommodate more files. Recreating the control file is not required to increase the MAXDATAFILES parameter.

You can find these 2 values:

select value from v$parameter where name = 'db_files';

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论