TNS-12520 TNS-12519 連線錯誤處理

wuyuanyong發表於2010-07-16

今天巡檢客戶資料庫時,發現有個taf自動offline,手工啟動後,再過一段時間又自動offline
$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.lsnr application ONLINE ONLINE db1
ora....db1.gsd application ONLINE ONLINE db1
ora....db1.ons application ONLINE ONLINE db1
ora....db1.vip application ONLINE ONLINE db1
ora....B2.lsnr application ONLINE ONLINE db2
ora....db2.gsd application ONLINE ONLINE db2
ora....db2.ons application ONLINE ONLINE db2
ora....db2.vip application ONLINE ONLINE db2
ora.gzdb.db application ONLINE ONLINE db2
ora....c1.inst application ONLINE ONLINE db1
ora....c2.inst application ONLINE ONLINE db2
ora....dcdb.cs application ONLINE ONLINE db2
ora....dc1.srv application ONLINE OFFLINE
ora....dc2.srv application ONLINE ONLINE db2
監聽日誌報如下錯誤:
13-JUL-2010 13:27:18 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVER=DEDICATED)(SERVICE_NAME=gzdcdb)(FAILOVER_MODE=(type=select)(method=basic))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=61530)) * establish * db * 13520
TNS-12520: TNS:listener could not find available handler for requested type of server

客戶端連線也不正常
$
SQL*Plus: Release 10.1.0.4.0 - Production on Wed Jul 14 16:03:15 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12520: TNS:listener could not find available handler for requested type of
server

介入處理:
show parameter processes
processes 150 ----預設值 150

select * from gv$resource_limit
INST_ID RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE
---------- ------------------------------ ------------------- --------------- -------------------- --------------------
1 processes 149 150 150 150
1 sessions 152 156 170 170
1 enqueue_locks 175 481 2462 2462
1 enqueue_resources 168 342 968 UNLIMITED
1 ges_procs 149 149 151 151
1 ges_ress 48789 54428 4656 UNLIMITED
1 ges_locks 58379 66558 6695 UNLIMITED
1 ges_cache_ress 1586 2304 0 UNLIMITED
1 ges_reg_msgs 123 2560 730 UNLIMITED
1 ges_big_msgs 53 99 730 UNLIMITED
1 ges_rsv_msgs 0 0 300 300
INST_ID RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE
---------- ------------------------------ ------------------- --------------- -------------------- --------------------
1 gcs_resources 523835 553818 631953 631953
1 gcs_shadows 275118 281683 631953 631953
1 dml_locks 2 50 748 UNLIMITED
1 temporary_table_locks 0 8 UNLIMITED UNLIMITED
1 transactions 2 10 187 UNLIMITED
1 branches 0 0 187 UNLIMITED
1 cmtcallbk 0 1 187 UNLIMITED
1 sort_segment_locks 10 14 UNLIMITED UNLIMITED
1 max_rollback_segments 11 11 187 65535
1 max_shared_servers 1 1 UNLIMITED UNLIMITED
1 parallel_max_servers 1 7 120 3600
INST_ID RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE
---------- ------------------------------ ------------------- --------------- -------------------- --------------------
2 processes 70 115 150 150
2 sessions 77 125 170 170
2 enqueue_locks 164 286 2462 2462
2 enqueue_resources 166 249 968 UNLIMITED
2 ges_procs 70 114 151 151
2 ges_ress 69809 80946 4656 UNLIMITED
2 ges_locks 80635 90200 6695 UNLIMITED
2 ges_cache_ress 5042 5230 0 UNLIMITED
2 ges_reg_msgs 89 3063 730 UNLIMITED
2 ges_big_msgs 32 538 730 UNLIMITED
2 ges_rsv_msgs 0 0 300 300
INST_ID RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE
---------- ------------------------------ ------------------- --------------- -------------------- --------------------
2 gcs_resources 66883 500751 500751 500751
2 gcs_shadows 228595 500751 500751 500751
2 dml_locks 2 71 748 UNLIMITED
2 temporary_table_locks 0 8 UNLIMITED UNLIMITED
2 transactions 7 21 187 UNLIMITED
2 branches 0 0 187 UNLIMITED
2 cmtcallbk 0 2 187 UNLIMITED
2 sort_segment_locks 4 17 UNLIMITED UNLIMITED
2 max_rollback_segments 12 13 187 65535
2 max_shared_servers 1 1 UNLIMITED UNLIMITED
2 parallel_max_servers 4 7 120 3600
44 rows selected.

可以看到外面連線數已經達到設定的processes引數值了
透過查metalink文件ID為240710.1
Cause
By way of instance registration, PMON is responsible for updating the listener
with information about a particular instance such as load and dispatcher
information. Maximum load for dedicated connections is determined by the
PROCESSES parameter. The frequency at which PMON provides SERVICE_UPDATE
information varies according to the workload of the instance. The maximum
interval between these service updates is 10 minutes.
The listener counts the number of connections it has established to the instance
but does not immediately get information about connections that have terminated.
Only when PMON updates the listener via SERVICE_UPDATE is the listener
informed of current load. Since this can take as long as 10 minutes, there can be
a difference between the current instance load according to the listener
and the actual instance load.
When the listener believes the current number of connections has reached maximum
load, it may set the state of the service handler for an instance to "blocked"
and begin refusing incoming client connections with either of the following
errors:
TNS-12516 TNS:listener could not find instance with matching protocol stack
TNS-12519 TNS:no appropriate service handler found
Additionally, an ORA-12520 error may appear in the listener log.
The output of the LSNRCTL services command will likely show that the service handler is "blocked".
e.g. '"DEDICATED" established:1 refused:0 state:blocked'
Solution
Increase the pfile or spfile setting for PROCESSES

把引數加大後,重啟資料庫
SQL> alter system set processes=500 scope=spfile sid='*';
System altered.
SQL>
問題解決

上一篇 / 下一篇 2010-07-15 11:43:11 / 個人分類:資料庫維護

本文轉自:http://space.itpub.net/?uid-7199859-action-viewspace-itemid-668073

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13879334/viewspace-1035337/,如需轉載,請註明出處,否則將追究法律責任。

相關文章