今天Oracle数据库遇到一个问题,用户在用客户端登陆数据库时,抛出异常:
ORA-00020: maximum number of processes (150) exceeded
从表面上看是Oracle连接的用户过多,但是这是一个开发环境,没有什么系统在使用,就我们几个开发人员用,之前从来没有出现过这个异常,所以也不知道怎么回事。于是在网上Google了一下,解决办法就是把数值设置的大一点,于是我重启了服务器,设置成了300,执行了如下命令。
sql> alter system set processes=300 scope=spfile;
过来一会儿服务器又提示同样的异常了。于是又重启了服务器,结果发现另外的一个刚才没有注意到的问题,informatica无法使用了。这个时候仔细研究,发现原来是informatica的密码过期了,可能是informatica不断的试着使用过期的密码去连接数据库,导致数据库的连接被占用完,所以其他系统都无法使用数据库了。
原来,Oracle里面在创建用户是我使用的是Default Profile,而这个默认的配置里面,密码的过期策略是180天过期,一看我有好几个数据库用户都要在这两天内过期。解决的办法是修改Default Profile,把密码过期策略改为永不过期。执行的脚步就是:
ALTER PROFILE "" LIMIT
SESSIONS_PER_USER UNLIMITED
cpu_PER_SESSION UNLIMITED
cpu_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
Failed_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 7
PASSWORD_VERIFY_FUNCTION NULL;
对于已经密码过期的用户,那么就需要重新启用这个用户,设置下密码了,对于快过期而没有过期的用户,那么就不要修改了,都会变成永不过期。
所以建议在安装Oracle数据库后,修改一下Default Profile,把密码改为不过期,毕竟以后很多服务都要不断的定期修改密码很麻烦的,虽然定期修改密码是个好习惯。
原文链接:https://www.f2er.com/oracle/72890.html