0%

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



写在前面:

如本文描述有错误,希望读到这篇文章的您能够提出批评指正。 联系方式:172310978@qq.com

1. 问题出现的原因

  • 起因是需要将数据库中的条目信息和磁盘上存储的文件信息进行比对,通过Java编程,连接数据库。由于需要精准比对,本人目前能力有限,只好采取单次查询,然后返回结果进行匹配,中间观察到控制台出现“ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序”的报错,网上解决方案是调整session和processes。

2. 具体方法

2.1 登录sql控制台

sqlplus /nolog

2.2 连接为管理员

conn / as sysdba

2.3 查看processes和session参数

2.3.1 查看processes参数

show parameter processes;

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> show parameter process

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
cell_offload_processing boolean TRUE
db_writer_processes integer 1
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 1000
processor_group_name string

等价于

1
2
3
4
5
SQL> select value from v$parameter where name = 'processes';

VALUE
---------------------------
1000

2.3.2 查看session参数

show parameter session;

1
2
3
4
5
6
7
8
9
10
11
12
SQL> show parameter session

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
session_cached_cursors integer 50
session_max_open_files integer 10
sessions integer 1524
shared_server_sessions integer

等价于

1
2
3
4
5
SQL> select value from v$parameter where name = 'sessions';

VALUE
----------------------------
1524

2.4 查看当前使用的情况

2.4.1 查看当前会话数

select count(*) from v$process;

1
2
3
4
5
SQL> select count(*) from v$process;

COUNT(*)
----------
998

2.4.2 查看当前会话数

select count(*) from v$session;

1
2
3
4
5
SQL>  select count(*) from v$session;

COUNT(*)
----------
995

2.5 调整process和session

alter system set processes=1000 scope=spfile;

alter system set sessions=1105 scope=spfile;

2.6 重启oracle 使配置生效

2.6.1 关闭

shutdown immediate

1
2
3
4
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
2.6.2 启动

startup

1
2
3
4
5
6
7
8
9
SQL> startup
ORACLE instance started.
Total System Global Area 6680915968 bytes
Fixed Size 2213936 bytes
Variable Size 5301602256 bytes
Databse Buffers 1342177280 bytes
Redo Buffers 34922496 bytes
Database mounted.
Database opened.

2.7 查看procress&session的参数值 查看配置是否生效

1).查看procress参数值

show parameter processes

2).查看session参数值

show parameter sessions

修改成功