Oracle连接数太多报错-ORA-12516错误,PL/SQL连接时错误如下图: 1,使用sqlplus提示“ MAXIMUM NUMBER OF PROCESSES(500) EXCEEDED” 2,使用ulimit -a 查看系统会话设置,MAX USER PROCESSES 不超过 16384就可以 3,重启服务器 4,查看进程和会话连接数量 SQL> select count(*) from v$session; SQL> select count(*) from v$process; 5,查看processes设置 SQL> show parameter processes NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0 db_writer_processes integer 2 gcs_server_processes integer 0 global_txn_processes integer 1 job_queue_processes integer 1000 log_archive_max_processes integer 4 processes integer 500 6,查看session设置 SQL> show parameter sessions NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ java_max_sessionspace_size integer 0 java_soft_sessionspace_limit integer 0 license_max_sessions integer 0 license_sessions_warning integer 0 sessions integer 780 shared_server_sessions integer 7,修改processes和sessions值(这两个值根据自己的需要调整) SQL> alter system set processes=1500 scope=spfile; 系统已更改。 SQL> alter system set sessions=2280 scope=spfile; 系统已更改。 8,重启数据库,使更改生效 9,再次查看session,process两个值 查看processes设置 SQL> show parameter processes NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0 db_writer_processes integer 2 gcs_server_processes integer 0 global_txn_processes integer 1 job_queue_processes integer 1000 log_archive_max_processes integer 4 processes integer 1500 查看session设置 SQL> show parameter sessions NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ java_max_sessionspace_size integer 0 java_soft_sessionspace_limit integer 0 license_max_sessions integer 0 license_sessions_warning integer 0 sessions integer 2280 shared_server_sessions integer 解决这个问题的方法: 1,列出ORACLE进程,使用“kill -9 sid” 杀掉进程,再登录数据库修改process,session参数并重启库。 [oracle@dba /]$ ps -ef |grep oracle 2, 因为连接会话太多并被占满,没有时间去一个个杀进程,所以重启服务器这种方法暂时问题得到缓解,然后再修改ORACLE sesssion和process参数并重启库。 其他: ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下: sessions=(1.1*process+5) ================================================================================= 版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任! 谢谢合作! QQ: 164798858@qq.com Sina: weibo.com/kaijunfeng Yahoo: fffygapl@yahoo.com.cn
1,使用sqlplus提示“ MAXIMUM NUMBER OF PROCESSES(500) EXCEEDED”
2,使用ulimit -a 查看系统会话设置,MAX USER PROCESSES 不超过 16384就可以
3,重启服务器
4,查看进程和会话连接数量
SQL> select count(*) from v$session;
SQL> select count(*) from v$process;
5,查看processes设置
SQL> show parameter processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 2
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 500
6,查看session设置
SQL> show parameter sessions
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
sessions integer 780
shared_server_sessions integer
7,修改processes和sessions值(这两个值根据自己的需要调整)
SQL> alter system set processes=1500 scope=spfile; 系统已更改。
SQL> alter system set sessions=2280 scope=spfile; 系统已更改。
8,重启数据库,使更改生效
9,再次查看session,process两个值
查看processes设置
SQL> show parameter processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 2
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 1500
查看session设置
SQL> show parameter sessions
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
sessions integer 2280
shared_server_sessions integer
解决这个问题的方法:
1,列出ORACLE进程,使用“kill -9 sid” 杀掉进程,再登录数据库修改process,session参数并重启库。
[oracle@dba /]$ ps -ef |grep oracle
2, 因为连接会话太多并被占满,没有时间去一个个杀进程,所以重启服务器这种方法暂时问题得到缓解,然后再修改ORACLE sesssion和process参数并重启库。
其他:
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
=================================================================================
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任! 谢谢合作!
QQ: 164798858@qq.com
Sina: weibo.com/kaijunfeng
Yahoo: fffygapl@yahoo.com.cn