×
文章路径: 数据库

ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程

发表于3年前(Dec 24, 2014 10:35:37 AM)  阅读 636  评论 0

分类: 数据库

标签: ora ORA-12516

今天用plsql连接数据库时发现这么一个错误,造成无法连接,百度发现,应该是processes和sessions值超出了限制导致的。

启动cmd:
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on 星期三 11月 21 18:47:40 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> show parameter processes
NAME TYPE VALUE
———————————— ———– ——————————
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 150
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
logmnr_max_persistent_sessions integer 1
sessions integer 170
shared_server_sessions integer
可以看到processes默认值为150, sessions为170,这两个值我平时都没改过,这次正好正在做压力测试,估计就是因为压力测试,导致进程不够用了。最简单的办法将该值改大,ORACLE的连接数(sessions)与其参数文件中的进程数(processes)有关,它们的关系如下:sessions=(1.1*processes+5),于是我将processes改为了500,sessions改为了555。
SQL> alter system set processes=500 scope=spfile;
系统已更改。
SQL> alter system set sessions=555 scope=spfile;
系统已更改。
修改完必须重新启动数据库,重启完,再做压力测试时没发现该问题。

发表评论