当oracle连接数超过最大的150登录不上

解决

sqlplus / as sysdba   //报错,提示连接数未释放!

---释放网络连接数(临时,目的登陆进数据库)

# mvpbang是oracle实例的名字sid,查看非本地连接数
ps -ef |grep ora |grep "oraclemvpbang" |grep "LOCAL=NO" | wc -l   

# #杀掉所有非本地的连接数
ps -ef |grep ora |grep "oraclemvpbang" |grep "LOCAL=NO" |awk '{print$2}' | xargs kill -9  

#Oracle连接常见的有带LOCAL=NO或LOCAL=YES的进程

LOCAL=NO:非本地连接,即网络连接,它是通过Listener 连接到服务器的。客户端的应用通过客户端的监听向服务器的监听发送请求,服务器的监听接收后,在与数据库连接,执行相关操作,在把结果返回给客户端。

LOCAL=YES:本地连接,本地连接不走监听,所以在服务监听没有启动的情况下,通过本地的sqlplus 还是可以连上数据库的。

修改默认连接数限制 150 -> 1500

1.登陆到数据库
sqlplus / as sysdba

2.查看当前porcesses
SELECT value FROM v$parameter WHERE name='processes';

3.修改进程连接数
ALTER SYSTEM SET PROCESSES=1500 SCOPE=SPFILE;  //重启后生效
ALTER SYSTEM SET PROCESSES=1500 SCOPE=BOTH;   //立即生效,重启后也生效

4.重启数据库
SHUTDOWN IMMEDIATE;
STARTUP;

5.再次检查processes
SELECT value FROM v$parameter WHERE name='processes';