Oracle報錯ORA-12516 TNS:listener could not find available handler with matching protocol stack


解決辦法
定位原因
-- 以sysdba身份登陸PL/SQL
sqlplus / as sysdba;
-- 查看當前連接進程數
SQL>select count(*) from v$process;
-- 查看連接數上限
SQL>select value from v$parameter where name = 'processes';
-- 查詢processes數量
SQL> show parameter processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 3
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 150
-- 查詢sessions數量
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
SQL>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
經過以上數據庫參數查詢,發現sessions數量不夠,只有150,故增大sessions數量。
只要會話連接數超過上面的process數150或者sessions數170,再來一個的會話進程,就會產生12516錯誤。因此可以修改一下該值。sessions和processes關系必須按照如下關系設置。
sessions=1.1*processes+5;
//這個是sessions值和processes值的關系,最好按照這樣做,因此如果要將processes數設置為500,則sessions數必須為1.1*500+5=555
修改連接數的限制
-- 以sysdba身份登陸PL/SQL
-- 查詢目前連接數
show parameter processes;
-- 修改processes
alter system set processes=500 scope=spfile;
-- 修改processes
alter system set sessions=555 scope=spfile;
-- 重啟Oracle服務或重啟Oracle服務器
-- 然后reboot數據庫,使其生效
---------------------


本文轉自:https://blog.csdn.net/tianqishu11/article/details/78615850


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM