ORA-00020: No more process state objects available故障一例
今天一網友諮詢資料庫當機了,當時資料庫出現使用者無法登入的症狀,為了瞭解起因,去檢視了網友的告警日誌alert.log,發現在晚上10:00左右出現大量的ORA-00020: No more process state objects available 錯誤,具體錯誤日誌如下:
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for Linux: Version 11.2.0.2.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.2.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.2.0 - Production
Time: 11-MAY-2015 14:28:28
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12560
nt main err code: 505
TNS-00505: Operation timed out
nt secondary err code: 110
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.102.150)(PORT=50069))
Mon May 11 16:21:14 2015
Thread 1 cannot allocate new log, sequence 1728
Private strand flush not complete
Current log# 4 seq# 1727 mem# 0: /oradata/orcl/redo4.log
Thread 1 advanced to log sequence 1728 (LGWR switch)
Current log# 3 seq# 1728 mem# 0: /oradata/orcl/redo3.log
Mon May 11 22:00:00 2015
Setting Resource Manager plan SCHEDULER[0x3107]:DEFAULT_MAINTENANCE_PLAN via scheduler window
Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter
Mon May 11 22:00:00 2015
Starting background process VKRM
Mon May 11 22:00:00 2015
VKRM started with pid=83, OS id=27195
Tue May 12 00:56:23 2015
Thread 1 cannot allocate new log, sequence 1729
Private strand flush not complete
Current log# 3 seq# 1728 mem# 0: /oradata/orcl/redo3.log
Thread 1 advanced to log sequence 1729 (LGWR switch)
Current log# 1 seq# 1729 mem# 0: /oradata/orcl/redo01.log
Tue May 12 02:00:00 2015
Closing scheduler window
Closing Resource Manager plan via scheduler window
Clearing Resource Manager plan via parameter
Tue May 12 10:46:48 2015
Thread 1 cannot allocate new log, sequence 1730
Private strand flush not complete
Current log# 1 seq# 1729 mem# 0: /oradata/orcl/redo01.log
Thread 1 advanced to log sequence 1730 (LGWR switch)
Current log# 2 seq# 1730 mem# 0: /oradata/orcl/redo2.log
Tue May 12 14:36:13 2015
Thread 1 cannot allocate new log, sequence 1731
Private strand flush not complete
Current log# 2 seq# 1730 mem# 0: /oradata/orcl/redo2.log
Thread 1 advanced to log sequence 1731 (LGWR switch)
Current log# 4 seq# 1731 mem# 0: /oradata/orcl/redo4.log
Tue May 12 16:27:07 2015
Thread 1 cannot allocate new log, sequence 1732
Private strand flush not complete
Current log# 4 seq# 1731 mem# 0: /oradata/orcl/redo4.log
Thread 1 advanced to log sequence 1732 (LGWR switch)
Current log# 3 seq# 1732 mem# 0: /oradata/orcl/redo3.log
Tue May 12 22:00:00 2015
Setting Resource Manager plan SCHEDULER[0x3108]:DEFAULT_MAINTENANCE_PLAN via scheduler window
Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter
Tue May 12 22:00:00 2015
Starting background process VKRM
Tue May 12 22:00:00 2015
VKRM started with pid=174, OS id=25804
Wed May 13 02:00:00 2015
Closing scheduler window
Closing Resource Manager plan via scheduler window
Clearing Resource Manager plan via parameter
Wed May 13 02:45:10 2015
Thread 1 cannot allocate new log, sequence 1733
Private strand flush not complete
Current log# 3 seq# 1732 mem# 0: /oradata/orcl/redo3.log
Thread 1 advanced to log sequence 1733 (LGWR switch)
Current log# 1 seq# 1733 mem# 0: /oradata/orcl/redo01.log
Wed May 13 09:05:36 2015
Time drift detected. Please check VKTM trace file for more details.
Wed May 13 09:15:55 2015
DM00 started with pid=352, OS id=4784, job SYSTEM.SYS_EXPORT_SCHEMA_01
Wed May 13 09:15:56 2015
DW00 started with pid=353, OS id=4786, wid=1, job SYSTEM.SYS_EXPORT_SCHEMA_01
Wed May 13 10:11:52 2015
Thread 1 cannot allocate new log, sequence 1734
Private strand flush not complete
Current log# 1 seq# 1733 mem# 0: /oradata/orcl/redo01.log
Thread 1 advanced to log sequence 1734 (LGWR switch)
Current log# 2 seq# 1734 mem# 0: /oradata/orcl/redo2.log
Wed May 13 13:15:38 2015
Thread 1 cannot allocate new log, sequence 1735
Private strand flush not complete
Current log# 2 seq# 1734 mem# 0: /oradata/orcl/redo2.log
Thread 1 advanced to log sequence 1735 (LGWR switch)
Current log# 4 seq# 1735 mem# 0: /oradata/orcl/redo4.log
Wed May 13 14:54:18 2015
Thread 1 cannot allocate new log, sequence 1736
Private strand flush not complete
Current log# 4 seq# 1735 mem# 0: /oradata/orcl/redo4.log
Thread 1 advanced to log sequence 1736 (LGWR switch)
Current log# 3 seq# 1736 mem# 0: /oradata/orcl/redo3.log
Wed May 13 17:39:31 2015
Thread 1 cannot allocate new log, sequence 1737
Private strand flush not complete
Current log# 3 seq# 1736 mem# 0: /oradata/orcl/redo3.log
Thread 1 advanced to log sequence 1737 (LGWR switch)
Current log# 1 seq# 1737 mem# 0: /oradata/orcl/redo01.log
Wed May 13 20:47:10 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Wed May 13 20:52:37 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Wed May 13 20:57:38 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Wed May 13 21:01:35 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process W001 submission failed with error = 20
Wed May 13 21:02:38 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m001 submission failed with error = 20
Wed May 13 21:05:44 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process W001 submission failed with error = 20
Wed May 13 21:12:38 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Process m001 submission failed with error = 20
Wed May 13 21:42:39 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Process m001 submission failed with error = 20
Wed May 13 21:43:00 2015
Process W001 submission failed with error = 20
Wed May 13 21:51:13 2015
Adjusting the default value of parameter parallel_max_servers
from 1280 to 385 due to the value of parameter processes (400)
Starting ORACLE instance (normal)
Wed May 13 21:52:40 2015
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Wed May 13 21:53:33 2015
錯誤資訊一般在Oracle例項在建立一些輔助後臺程式(如mmon的子程式m00x或者子程式W00x等)時出現程式啟動失敗時出現,而造成該錯誤的可能性有多種,包括Oracle例項資源不足、作業系統資源不足等等。其中較為常見的是例項instance的process使用達到上限,可以透過查詢v$resource_limit檢視來了解例項生命週期內是否發生過process總數暴滿的情況:
我們可以看到processes的MAX_UTILIZATION最大使用數目曾到過LIMIT_VALUE限定的400,
sessions達到了640.
從以上V$resource_limit檢視的輸出來看,極有可能是processes總數達到上限導致了新的後臺輔助程式建立失敗,其實我們可以很方便地驗證這一點:
[oracle@bntjftest ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu May 14 15:28:15 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
SQL> show parameter processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
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 500
SQL> alter system set processes=40 scope=spfile;
System altered.
SQL> startup force;
ORACLE instance started.
Total System Global Area 1987563520 bytes
Fixed Size 2254584 bytes
Variable Size 1224739080 bytes
Database Buffers 754974720 bytes
Redo Buffers 5595136 bytes
Database mounted.
Database opened.
SQL> select resource_name,MAX_UTILIZATION,LIMIT_VALUE from v$resource_limit where resource_name in ('processes','sessions');
RESOURCE_NAME MAX_UTILIZATION LIMIT_VALUE
------------------------------ --------------- --------------------
processes 24 40
sessions 25 556
SQL> show parameter proce
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 40
processor_group_name string
SQL> select resource_name,MAX_UTILIZATION,LIMIT_VALUE from v$resource_limit where resource_name in ('processes','sessions');
RESOURCE_NAME MAX_UTILIZATION LIMIT_VALUE
------------------------------ --------------- --------------------
processes 40 40
sessions 45 556
SQL>
客戶端連線時,報下如的錯誤。
alter檔案中的預警資訊如下:
Thu May 14 15:39:32 2015
SMCO started with pid=37, OS id=19445
Thu May 14 15:44:30 2015
ORA-00020: maximum number of processes (40) exceeded
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Thu May 14 15:49:30 2015
ORA-00020: maximum number of processes (40) exceeded
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Thu May 14 15:59:30 2015
ORA-00020: maximum number of processes (40) exceeded
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Process m001 submission failed with error = 20
Thu May 14 16:00:30 2015
Process m000 submission failed with error = 20
Thu May 14 16:01:30 2015
ORA-00020: maximum number of processes (40) exceeded
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Thu May 14 16:03:31 2015
ORA-00020: maximum number of processes (40) exceeded
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
the ORA-20 errors.
Process m000 submission failed with error = 20
Thu May 14 16:04:31 2015
Process m000 submission failed with error = 20
例子中我們可以清楚地瞭解到是因為資料庫在實際執行中出現了processes程式總數達到引數設定上限從而導致問題出現,那麼可以合理增加初始化引數processes或者透過修正異常頻繁的程式客戶端登入來解決該問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1654798/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Basically Available(基本可用),Soft stateAI
- Not enough server storage is available to process this command.ServerAI
- ora-00020資料庫報錯,process程式爆滿資料庫
- MySQL SLAVE故障一例MySql
- 網路故障一例
- Error: 17803, Severity: 20, State: 7 Insufficient memory availableErrorAI
- Git bash Error: Could not fork child process: There are no available terminals (-1)GitErrorAI
- OGG 故障處理一例
- goldengate故障處理一例Go
- AIX下nfs故障導致oracle process hangAINFSOracle
- vmwareworkstation虛擬網路故障一例
- ORA-00054 故障處理一例
- Rownum分頁故障解決一例
- goldengate故障處理一例(續)Go
- database link故障處理一例Database
- "OPatch failed with error code 73"故障一例AIError
- 以太坊原始碼分析(23)core-state-process原始碼分析原始碼
- Dynamics CRM the field cannot be deleted because it is used in one or more process的解決方法delete
- namenode gc導致的故障一例薦GC
- ORA-03232故障解決一例
- 處理mysql複製故障一例薦MySql
- enq: TX - index contention故障修復一例ENQIndex
- 故障分析 | MySQL鎖等待超時一例分析MySql
- ORACLE 10G rac故障處理一例Oracle 10g
- oracle 10046事件故障診斷一例Oracle事件
- oracle dataguard資料同步故障處理一例Oracle
- [Oracle]--Library cache lock 故障解決一例Oracle
- 系統cpu佔用超高故障分析一例
- solaris單使用者解決故障一例
- Linux DHCP網路故障排除一例(轉)Linux
- kkjcre1p: unable to spawn jobq slave process故障處理
- MySQL:5.6 大事務show engine innodb status故障一例MySql
- MySQL:產生大量小relay log的故障一例MySql
- ORA-00904故障分析與解決一例
- 【kingsql分享】RAC節點故障修復一例SQL
- 軟硬碟都無法啟動故障一例 (轉)硬碟
- Oracle - ORA-01034: ORACLE not available Process ID: 0 / Connected to an idle instanceOracleAI
- ObjectsObject