ORA-12518 TNS:监听程序无法分发客户机连接

最常见的原因是process和session数量设置过低。

查看修改process参数

1
2
3
4
5
6
7
8
9
10
> show parameter process

NAME TYPE VALUE
------------------------------------ --------------------------------- -------------------
aq_tm_processes integer 0
db_writer_processes integer 3
gcs_server_processes integer 0
job_queue_processes integer 20
log_archive_max_processes integer 2
processes integer 150

偏低,修改process参数

1
> alter system set processes=1000 scope = spfile;

这里无法直接修改内存值,也就是不能使用scope=both,否则会有提示:

1
ORA-02095: specified initialization parameter cannot be modified

查看修改session参数

查看

1
2
3
4
5
6
7
8
9
10
11
12
> 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
logmnr_max_persistent_sessions integer 1
session_cached_cursors integer 20
session_max_open_files integer 10
sessions integer 170
shared_server_sessions integer

修改

1
> alter system set sessions=1105 scope = spfile;

sessions是个派生值,由processes的值决定,公式sessions=1.1*process + 5

因为修改的是spfile,所以并不会立即生效,只有重新启动oracle,设置才会生效。

===
[erq]