ORA-00020: No more process state objects available故障一例
今天公司一大早收到通知,昨天数据库数据未生成。当时查看跑批的日志,发现平常只需运行半个小时的过程,今天整整运行了7个小时(明显存在问题),导致后续数据正常时间读取失败。为了了解起因,查看了oracle 的告警日志,发现在早上1点半左右出现了错误 ORA-00020: No more process state objects available,进程p062在执行的过程中被告知无可用的进程状态 导致进程hang在哪里,知道有连接断开才继续,具体日志信息如下:
Current log# 5 seq# 9361 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo05.log
Sat Mar 26 01:31:31 2016
Thread 1 advanced to log sequence 9362 (LGWR switch)
Current log# 6 seq# 9362 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo06.log
Thread 1 advanced to log sequence 9363 (LGWR switch)
Current log# 9 seq# 9363 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo09.log
Thread 1 advanced to log sequence 9364 (LGWR switch)
Current log# 10 seq# 9364 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo10.log
Thread 1 advanced to log sequence 9365 (LGWR switch)
Current log# 3 seq# 9365 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo03.log
Sat Mar 26 01:37:13 2016
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 P062 submission failed with error = 20
Sat Mar 26 01:40:46 2016
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 P062 submission failed with error = 20
Sat Mar 26 01:46:17 2016
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
Sat Mar 26 01:48:45 2016
Thread 1 advanced to log sequence 9366 (LGWR switch)
Current log# 11 seq# 9366 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo11.log
Sat Mar 26 01:55:33 2016
Thread 1 advanced to log sequence 9367 (LGWR switch)
Current log# 12 seq# 9367 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo12.log
Thread 1 advanced to log sequence 9368 (LGWR switch)
Current log# 4 seq# 9368 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo04.log
Sat Mar 26 01:56:39 2016
Thread 1 advanced to log sequence 9369 (LGWR switch)
Current log# 1 seq# 9369 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo01.log
Sat Mar 26 02:00:15 2016
Thread 1 advanced to log sequence 9370 (LGWR switch)
Current log# 2 seq# 9370 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo02.log
Sat Mar 26 02:04:33 2016
Thread 1 advanced to log sequence 9371 (LGWR switch)
Current log# 7 seq# 9371 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo07.log
Thread 1 advanced to log sequence 9372 (LGWR switch)
Current log# 8 seq# 9372 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo08.log
Thread 1 advanced to log sequence 9373 (LGWR switch)
Current log# 5 seq# 9373 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo05.log
Sat Mar 26 02:04:43 2016
Thread 1 advanced to log sequence 9374 (LGWR switch)
Current log# 6 seq# 9374 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo06.log
Thread 1 advanced to log sequence 9375 (LGWR switch)
Current log# 9 seq# 9375 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo09.log
Sat Mar 26 02:26:22 2016
Thread 1 advanced to log sequence 9376 (LGWR switch)
Current log# 10 seq# 9376 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo10.log
Sat Mar 26 04:00:04 2016
DM00 started with pid=39, OS id=33332, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:05 2016
DW00 started with pid=37, OS id=33334, wid=1, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:14 2016
Thread 1 advanced to log sequence 9377 (LGWR switch)
Current log# 3 seq# 9377 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo03.log
Sat Mar 26 04:00:23 2016
DW01 started with pid=41, OS id=33342, wid=2, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:23 2016
DW02 started with pid=42, OS id=33344, wid=3, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:23 2016
DW03 started with pid=43, OS id=33346, wid=4, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:23 2016
DW04 started with pid=44, OS id=33348, wid=5, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:23 2016
DW05 started with pid=45, OS id=33350, wid=6, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:23 2016
DW06 started with pid=46, OS id=33352, wid=7, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:00:23 2016
DW07 started with pid=47, OS id=33354, wid=8, job ETLUSER.NBIFULLDUMP
Sat Mar 26 04:03:57 2016
Thread 1 advanced to log sequence 9378 (LGWR switch)
Current log# 11 seq# 9378 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo11.log
Sat Mar 26 04:04:18 2016
Thread 1 advanced to log sequence 9379 (LGWR switch)
Current log# 12 seq# 9379 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo12.log
Sat Mar 26 04:04:42 2016
Thread 1 advanced to log sequence 9380 (LGWR switch)
Current log# 4 seq# 9380 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo04.log
Sat Mar 26 04:05:06 2016
Thread 1 advanced to log sequence 9381 (LGWR switch)
Current log# 1 seq# 9381 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo01.log
Sat Mar 26 04:05:51 2016
Thread 1 advanced to log sequence 9382 (LGWR switch)
Current log# 2 seq# 9382 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo02.log
Sat Mar 26 04:51:01 2016
Thread 1 cannot allocate new log, sequence 9383
Private strand flush not complete
Current log# 2 seq# 9382 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo02.log
Thread 1 advanced to log sequence 9383 (LGWR switch)
Current log# 7 seq# 9383 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo07.log
Sat Mar 26 04:52:37 2016
Thread 1 cannot allocate new log, sequence 9384
Private strand flush not complete
Current log# 7 seq# 9383 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo07.log
Thread 1 advanced to log sequence 9384 (LGWR switch)
Current log# 8 seq# 9384 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo08.log
Sat Mar 26 08:28:51 2016
Thread 1 advanced to log sequence 9385 (LGWR switch)
Current log# 5 seq# 9385 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo05.log
Sat Mar 26 12:00:28 2016
Thread 1 advanced to log sequence 9386 (LGWR switch)
Current log# 6 seq# 9386 mem# 0: /u01/app/oracle/oradata/ORCL/ORCL/onlinelog/redo06.log
该错误信息一般在Oracle实例在创建一些辅助后台进程(如mmon的子进程m00x或者子进程W00x等)时出现进程启动失败时出现,而造成该错误的可能性有多种,包括Oracle实例资源不足、操作系统资源不足等等。其中较为常见的是实例instance的process使用达到上限,可以通过查询v$resource_limit视图来了解实例生命周期内是否发生过process总数暴满的情况:

我们可以看到processes的MAX_UTILIZATION最大使用数目曾到过LIMIT_VALUE限定的100,
sessions是126
从以上V$resource_limit视图的输出来看,极有可能是processes总数达到上限导致了新的后台辅助进程创建失败,其实我们可以很方便地验证这一点:
[oracle@db trace]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1. Production on Sat Mar :: Copyright (c) , , Oracle. All rights reserved. Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1. - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options SQL> show parameter processes NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer
db_writer_processes integer
gcs_server_processes integer
global_txn_processes integer
job_queue_processes integer
log_archive_max_processes integer
processes integer
SQL>
以上我们可以清楚地了解到是因为数据库在实际运行中出现了processes进程总数达到参数设定上限从而导致问题出现。
那么可以合理增加初始化参数processes来解决该问题。
ORA-00020: No more process state objects available故障一例的更多相关文章
- Linux进程状态 ( Linux Process State Codes)
进程状态代码及说明: STATE代码 说明 D 不可中断的睡眠. 通常是处于I/O之中. R 运行中/可运行. 正处于运行队列中. S 可中断的睡眠. 等待某事件发生. T 已停止. 可能是因为she ...
- Linux process state codes
Here are the different values that the s, stat and state output specifiers (header "STAT" ...
- Linux 进程状态 概念 Process State Definition
From : http://www.linfo.org/process_state.html 进程状态是指在进程描述符中状态位的值. 进程,也可被称为任务,是指一个程序运行的实例. 一个进程描述符是一 ...
- Linux 进程状态标识 Process State Definition
From : http://www.linfo.org/process_state.html 译者:李秋豪 进程状态标识是指在进程描述符中状态位的值. 进程,也可被称为任务,是指一个程序运行的实例. ...
- linux 常用命令-ps(process state)
ps -ef | grep 端口号:查看某个端口的占用情况 ps -tunlp | grep 端口号:查看占用端口的进程名称
- Oracle异常汇总
持续更新中,可参见https://hnuhell.gitbooks.io/oracle_errmg/content/或https://hnuhell.github.io/Oracle_ERRMG/上的 ...
- Oracle中session和processes的设置
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- 【翻译自mos文章】在10g中,当发生ORA-00020时,sqlplus登陆会报“connected to an idle instance”
在10g中.当发生ORA-00020时,sqlplus登陆会报"connected to an idle instance" 来源于: Sqlplus Logon Reports ...
- Oracle 中session和processes的初始设置
http://blog.163.com/succu/blog/static/193917174201252911727149/ 1.sessions 在初始化参数所设定的限制中,最为人所知的估计就 ...
随机推荐
- GJM:C# WinForm开发系列 - DataGridView 使用方法集锦 [转载]
1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHe ...
- 使用 FocusPoint.js 实现图片的响应式裁剪
通常网站的布局都不是单一的.例如图像在电脑.平板和智能手机上可能显示的形状是不同的.特别是如果你使用的是全屏图像,在你必须使用相同的图像文件的情况下,你的主题可能会被截断或完全缺失,或者看起来很尴尬. ...
- Wami Map Project – 开源的 OSM API 服务
Wami 地图项目把 OSM 数据分享给所有的人,很容易使用.他们利用 MongoDB 的潜力进行大数据管理来实现从 OSM 数据来源搜索相关的数据.它们的 API 使人们有可能检索不同格式的 POI ...
- jQuery立体式数字滚动条增加
1.html结构 <div class="numberRun1"></div> 2.js <script type="text/javasc ...
- CSS盒子模型
2016-10-22 <css入门经典>第6章 1.每个HTML元素对应于一个显示盒子,但不是所有的元素都显示在屏幕上. 2.HTML元素显示为CSS显示盒子的真正方法称为"可视 ...
- tomcat中的JSP引擎
jsp文件解析成class文件过程需要利用tomcat的jasper组件. Jasper是tomcat中使用的JSP引擎,在Tomcat 6中使用的是Jasper 2,相对于原来的版本作了不少的改进, ...
- switch-枚举
在swift中,如果switch的枚举,可以不写default,因为系统知道有多少种情况,如果不是枚举,必须要写default enum WBComposeToolBarButtonType:Int ...
- 工作中碰到的js问题(disabled表单元素不能提交到服务器)
今天碰到一个奇葩的问题,asp页面表单提交后,有一个文本框<input type="text" name="phone" id="phone&q ...
- Android Studio教程--Android Studio 2.1安装与配置
1.下载Android Studio 去官网https://developer.android.com/studio/index.html下载最新版的Android Studio2.1(自备梯子) 或 ...
- HTTPS时代全面到来,你准备好了吗?
近一年可能有很多朋友发现在使用百度搜索时,是这个样子的 如我们所见,浏览器地址栏里的HTTP可能将成为永远的过去时,取而代之的是更安全的HTTPS. 首先,HTTPS是什么? HTTPS是Http O ...