描述
错误信息一般在Oracle实例在创建一些辅助后台进程(如mmon的子进程m00x或者子进程W00x等)时出现进程启动失败时出现,而造成该错误的可能性有多种,包括Oracle实例资源不足、操作系统资源不足等等。其中较为常见的是数据库在实际运行过程中实例instance的process使用达到参数设定上限而导致问题出现
解决方案
先停掉相关使用数据库连接得服务
然后登录数据库
查询v$resource_limit视图,查询:
select * from v$resource_limit
通过查询结果可以看到process的MAX_UTILIZATIOON最大使用数目曾经达到过LIMIT_VALUE限定的150,极有可能就是process总数达到上限数量导致数据库创建新的后台辅助进程失败。
select count(*) from v$process; //查询process使用数目
select count(*) from v$session; //查询session连接数目
修改process和sessions得参数的上限值
alter system set processes = 500 scope = spfile;
alter system set sessions = 755 scope = spfile;
注:processes和sessions的值,oracle官方文档要求:sessions=processes*1.5+5
重启数据库,使其修改参数生效