问题描述
增加表空间数据文件报错:
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状态
原文链接:https://blog.csdn.net/qq_35435160/article/details/124054892
最后修改时间:2024-01-08 19:51:26
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




