ORA-00059 oracle

ORA-00059: maximum number of DB_FILES exceeded 处理

===========================================================

 

今天添加数据文件,结果报错,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>

 

解决办法:

先不要shutdown immediate

Sql>alter system set db_files=1000(最大1024) scope=spfile;

Sql>shutdown immediate

Sql>startup

即可

 

以下参考:

不过通过 SQL> alter database backup controlfile to trace ;

在udump下面找到控制文件文本,查看发现 MAXDATAFILES 1024 , 如下面

# be invalidated. Use this only if online logs are damaged.

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG

-- SET STANDBY TO MAXIMIZE PERFORMANCE

MAXLOGFILES 192

MAXLOGMEMBERS 3

MAXDATAFILES 1024

MAXINSTANCES 32

MAXLOGHISTORY 3857

LOGFILE

GROUP 1 (

'/ocfs_ctrl_redo/orcl/redo01.log',

'/ocfs_data/orcl/redo01b.log'

) SIZE 100M,

由于db_files 参数值 200没有超过 maxdatafiles 1024 的大小,所以可

以通过直接加大参数db_files 值来防止此错误出现,以便正确加入数据文

件。 但是如果 db_files 已经设置和maxdatafiles 一样大小了,

报错ORA-00059, 那么就只有修改控制文件中的值了,需要重新生成控制文

件。使用 alter database backup controlfile to trace ,

到你的udump 目录下找到这个刚刚生成的trc文件,去掉其中的解释部分,

保留Create controlfile 部分,编辑此文件,增加MAXDATAFILES 的值,

然后关闭数据库shutdown immediate , 全备份一次数据库, 将现有的控

制文件备份到其他地方,然后从控制文件目录删除,假设将编辑好的trc文

件命名为 recreate_control.sql ; 那么我们现在可以执行重新建立控制

文件了。 注意修改的trc 文件开头都会有 STARTUP NOMOUNT 。

SQL> @recreate_control.sql

SQL> alter database open noresetlogs;

如果你收到了 Statement processed 的反馈信息,那么生效 。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值