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 ~]$ srtl 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