ORA-00059: 超出 DB_FILES 的最大值

问题描述

增加表空间数据文件报错:

alter tablespace ENTSERVICE add datafile '/oradata/topicis/entservice02.dbf' size 1M autoextend on NEXT 1M MAXSIZE UNLIMITED;

ORA-00059: 超出 DB_FILES 的最大值

脚本行 43,语句行 1

问题原因

Oracle数据库默认数据文件总数量为200个,超过200个就无法新建数据文件。

分析过程

--查数据库默认数据文件数量参数
SQL> show parameter db_files;

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

或

select * from v$parameter where name like '%db_files%'

--查数据库数据文件数量总数
select count(*) from dba_data_files ;
200

总数已经是200了

解决办法

单实例

--备份当前的参数文件(备份的目的是规避重启失败)
SQL> create pfile='/home/oracle/pfileywrac20240108.ora' from spfile;

--查看备份的参数文件
[oracle@gsdb ~]#cat /home/oracle/pfileywrac20240108.ora

--修改参数
SQL> alter system set db_files=5000 scope=spfile;

--重启库
SQL> shutdown immediate
SQL> startup

集群

--备份当前的参数文件(备份的目的是规避重启失败)
SQL> create pfile='/home/oracle/pfileywrac20240108.ora' from spfile;

--查看备份的参数文件
[oracle@gsrac2 ~]#cat /home/oracle/pfileywrac20240108.ora

--修改参数
SQL> alter system set db_files=5000 sid='*' scope=spfile ;  #1个节点执行,所有实例生效

--重启数据库  法一(建议)
su - grid
crsctl stat res -t   #查集群状态
srvctl stop database -d racdb   #1个节点操作,两个节点的数据库实例都会关闭
srvctl start database -d racdb   #1个节点操作,两个节点的数据库实例都会启动
srvctl status database -d racdb  #查看集群数据库状态
crsctl stat res -t   #查集群状态

sid='*'是指在所有实例上生效

--重启数据库  法二
su - oracle
SQL> shutdown immediate  #节点1和节点2分别执行
SQL> startup  #节点1和节点2分别执行
法二场景必须按顺序操作,不然提示如下报错:
ORA-01105: mount is incompatible with mounts by other instances
ORA-01174: DB_FILES is 5000 buts needs to be 200 to be compatible

注意事项

集群中shutdown immediate 是关闭1个实例,其他实例依然是open状态

原文链接:ORA-00059: 超出 DB_FILES 的最大值-CSDN博客

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董小姐yyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值