如果我荒廢了時間,時間便會把我也荒廢了... 我們都在不斷的趕路,忘記了出路...

再遇ORA-12516

上一篇 / 下一篇  2008-05-23 13:48:13 / 个人分类:OS&DB技術

記得以前有過一次,今天用戶再次反應又連不上數據庫了,遇到問題總要先查找原因,後尋找解決辦法,這個過程困難,也給心裡造成壓力。

避免後續再次出現同樣的問題,能夠最快時間順利輕鬆解決,今天就記錄之,平衡心理壓力呵...

問題描述:

[oracle@test dbs]$ oerr ora 12516
12516, 00000, "TNS:listener could not find available handler with matching protocol stack"
// *Cause: None of the known and available service handlers for the given
// SERVICE_NAME support the client's protocol stack: transport, session,
// and presentation protocols.
// *Action: Check to make sure that the service handlers (e.g. dispatchers)
// for the given SERVICE_NAME are registered with the listener, are accepting
// connections, and that they are properly configured to support the desired
// protocols.

診斷過程:

[oracle@test dbs]$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 23-MAY-2008 13:59:30

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                23-MAY-2008 13:20:03
Uptime                    0 days 0 hr. 39 min. 27 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.4.65)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "infuse01" has 1 instance(s).
  Instance "infuse01", status UNKNOWN, has 1 handler(s) for this service...
Service "infuse02" has 1 instance(s).
  Instance "infuse02", status UNKNOWN, has 1 handler(s) for this service...
Service "sgwmsdb" has 1 instance(s).
  Instance "sgwmsdb", status READY, has 1 handler(s) for this service...
Service "sgwmsdbXDB" has 1 instance(s).
  Instance "sgwmsdb", status READY, has 1 handler(s) for this service...
Service "sgwmsdb_XPT" has 1 instance(s).
  Instance "sgwmsdb", status READY, has 1 handler(s) for this service...
Service "test" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
Service "testXDB" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
Service "test_XPT" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
The command completed successfully

[oracle@test dbs]$ ps -ef|grep ora_

oracle    5018     1  0 Mar07 ?        00:00:41 ora_pmon_test
oracle    5020     1  0 Mar07 ?        00:01:45 ora_psp0_test
oracle    5022     1  0 Mar07 ?        00:00:01 ora_mman_test
oracle    5024     1  0 Mar07 ?        00:02:50 ora_dbw0_test
oracle    5026     1  0 Mar07 ?        00:07:52 ora_lgwr_test
oracle    5028     1  0 Mar07 ?        00:03:21 ora_ckpt_test
oracle    5030     1  0 Mar07 ?        00:04:53 ora_smon_test
oracle    5032     1  0 Mar07 ?        00:00:00 ora_reco_test
oracle    5034     1  0 Mar07 ?        00:01:46 ora_cjq0_test
oracle    5036     1  0 Mar07 ?        00:05:06 ora_mmon_test
oracle    5038     1  0 Mar07 ?        00:02:11 ora_mmnl_test
oracle    5040     1  0 Mar07 ?        00:00:00 ora_d000_test
oracle    5042     1  0 Mar07 ?        00:00:00 ora_s000_test
oracle    5052     1  0 Mar07 ?        00:01:12 ora_arc0_test
oracle    5054     1  0 Mar07 ?        00:01:11 ora_arc1_test
oracle    5058     1  0 Mar07 ?        00:00:00 ora_qmnc_test
oracle    5075     1  0 Mar07 ?        00:00:00 ora_q000_test

發現缺少job進程ora_j000_test

[oracle@test dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 23 13:23:22 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected.
SQL> select name from v$database;
select name from v$database
*
ERROR at line 1:
ORA-01012: not logged on


SQL> exit

[oracle@test dbs]$ ps -ef|grep oracle|wc -l
172

而spfile文件中processes = 150,從而判斷,這個值太小導致新用戶無法再連入DB.

數據庫處於not log on 狀態,無法直接修改相應參數,於是就先把相關oracle進程kill掉後,可以正常登錄數據庫.

[oracle@test dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 23 14:08:52 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> alter system set processes=300 scope=spfile;

SQL> shutdown immediate;

SQL> startup;

以上,用戶正常使用.


TAG:

引用 删除 Guest   /   2008-09-08 15:10:01
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar