首页 > 其他分享 >ORA-00020错误模拟及处理方法

ORA-00020错误模拟及处理方法

时间:2024-03-29 14:13:11浏览次数:21  
标签:24 00 ora11g 21 数据库 00020 ora 模拟 ORA

当数据库的连接数达到上限后,后续的登陆操作都会报ORA-00020错误,这里给出ORA-00020错误的模拟及处理方法。

1.调整数据库的processes参数到25
1)由于processes参数是静态参数,调整时需要使用“scope=spfile”选项进行调整。
sys@ora11g> alter system set processes=25 scope=spfile;

系统已更改。

2)重启数据库使参数调整生效
sys@ora11g>立即关闭;
数据库已关闭。
数据库已卸除。
ORACLE 实例已关闭。
sys@ora11g>创业;
ORACLE 实例已启动。

系统全局总面积 535662592 字节
固定大小 1337720 字节
可变大小 398460552 字节
数据库缓冲区 130023424 字节
重做缓冲区 5840896 字节
已装载的数据库。
数据库已打开。

3)确认调整结果
sys@ora11g> show parameter processes

名称类型 VALUE--------------------------------- -------------

aq_tm_processesinteger 0
db_writer_processesinteger 1
gcs_server_processesinteger 0
global_txn_processesinteger 1
job_queue_processesinteger 1000
log_archive_max_processesinteger 4
processesinteger 25

此时数据库的processes参数已经成功调整为25。

2.查看当前数据库进程数
sys@ora11g> select count(*) from v$process;

COUNT(*)
----------
23

此时进程数是23。25是进程数的上限,因此次数据库实例还可以支持一个进程连接。

3.开启新窗口连接数据库实例
ora11g@secdb /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 12 21:25:30 2011

版权所有 (c) 1982, 2009, Oracle.保留所有权利。


连接到:
Oracle Database 11g Enterprise Edition 11.2.0.1.0 版 - 生产
使用分区、OLAP、数据挖掘和实际应用测试选项

sys@ora11g>从 v$process 中选择 count(*);

COUNT(*)
----------
24

此时显示成功连接到数据库实例,进程数显示为24。

4.再次开启新窗口创建数据库连接
ora11g@secdb /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 12 21:26:37 2011

Copyright (c) 1982, 2009, Oracle.保留所有权利。

错误:
ORA-00020:超出


最大进程数 (25) 输入用户名:

ORA-00020错误已经成功模拟出来,原因是此时已经达到数据库进程数的上限25。注意25表示最大的进程数,即当进程数为25时即会报错,数据库实例最多支持24个有效的进程。

5.处理ORA-00020错误
既然是由于进程数过多到时的报错,因此我们最直接的处理方法便是手工杀掉无用的用户连接。
1)查看数据库后台进程信息
ora10g@secdb /home/oracle$ ps -ef | grep ora11g
oracle 22882 1 0 21:24 ? 00:00:00 ora_pmon_ora11g
oracle 22884 1 0 21:24 ? 00:00:00 ora_vktm_ora11g
oracle 22888 1 0 21:24 ? 00:00:00 ora_gen0_ora11g
oracle 22890 1 0 21:24 ? 00:00:00 ora_diag_ora11g
甲骨文 22892 1 0 21:24 ?00:00:00 ora_dbrm_ora11g
Oracle 22894 1 0 21:24 ? 00:00:00 ora_psp0_ora11g
Oracle 22896 1 0 21:24 ? 00:00:00 ora_dia0_ora11g
Oracle 22898 1 0 21:24 ? 00:00:00 ora_mman_ora11g
Oracle 22900 1 0 21:24 ? 00:00:00 ora_dbw0_ora11g
Oracle 22902 1 0 21:24 ? 00:00:00 ora_lgwr_ora11g
oracle 22904 1 0 21:24 ? 00:00:00 ora_ckpt_ora11g
甲骨文 22906 1 0 21:24 ? 00:00:00 ora_smon_ora11g
甲骨文 22908 1 0 21:24 ? 00:00:00 ora_reco_ora11g
甲骨文 22910 1 0 21:24 ? 00:00:00 ora_mmon_ora11g
甲骨文 22912 1 0 21:24 ? 00:00:00 ora_mmnl_ora11g
甲骨文 22914 1 0 21:24 ? 00:00:00 ora_d000_ora11g
甲骨文 22916 1 0 21:24 ? 00:00:00 ora_s000_ora11g
预言机 22945 22103 0 21:24 ? 00:00:00 oracleora11g (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))oracle
22947 1 0 21:24 ? 00:00:00 ora_qmnc_ora11g
oracle 22961 1 0 21:24 ? 00:00:00 ora_cjq0_ora11g
oracle 22972 1 0 21:25 ? 00:00:00 ora_q000_ora11g
oracle 22974 1 0 21:25 ? 00:00:00 ora_q001_ora11g
甲骨文 22993 22992 0 21:25 ?00:00:00 oracleora11g (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))oracle
23106 23066 0 21:27 pts/6 00:00:00 grep --color ora11g

这里显示出两类进程,一类是Oracle数据库的后台进程,另外一类是用户连接进程。
我们可以考虑讲用户连接进程杀掉,注意Oracle数据库后台进程不可轻易手工杀掉。

2)杀掉用户连接进程22945
ora10g@secdb /home/oracle$ kill -9 22945

3)尝试重新连接数据库
ora11g@secdb /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 12 21:28:56 2011

版权所有 (c) 1982, 2009, Oracle.保留所有权利。


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
with the Partitioning, OLAP, Data Mining and Real Application Testing 选项

sys@ora11g>

连接成功。到此ORA-00020错误便处理完毕。

6.小结
本文给出了ORA-00020错误的模拟以及简单的处理方法。对于生产环境最有效的避免发生ORA-00020错误的方法便是,上线前充分评估系统需要的最大进程数,一次性设置充分。这样便可以从根本上防止ORA-00020错误的发生。

标签:24,00,ora11g,21,数据库,00020,ora,模拟,ORA
From: https://www.cnblogs.com/ivenlin/p/18103737

相关文章

  • Faker库模拟数据生成,批量生成手机号,姓名,邮箱,
    一、简介Faker是一个开源的Python库,由IsaacKelly创建,旨在帮助开发者在测试和开发过程中生成伪造(模拟)数据。这个库能够生成各种类型的信息,包括但不限于姓名、地址、信用卡号、公司名称等,以及各种其他类型的模拟数据,这些数据可以用于填充数据库、创建测试账户、进行单元测试等......
  • Oracle中表空间查询
    1、查看表占的空间SELECTt.segment_name,round(SUM(t.bytes/1024/1024/1024),2)FROMuser_segmentstGROUPBYt.segment_nameORDERBYSUM(t.bytes/1024/1024/1024)DESC2、查看表空间使用率(包含临时表空间)SELECT*FROM(SELECTA.TABLESPACE_NAME,ROUND(A.BY......
  • Cisco Packet Tracer模拟器下载笔记
    给初学Cisco网络设备的小伙伴演示思科模拟器下载的方法及注意事项!目录   1:百度输入“思科网络技术学院”搜索官网主页。   2:进入“思科网络技术学院”主页。   3:登录个人账号。      3-1:点击“LogIn”。      3-2:有账户自接......
  • 练习-Java类和对象之对象引用之模拟手机功能
    第1关:练习-Java类和对象之对象引用之模拟手机功能任务描述本关任务:实现手机的基本功能。手机具有属性:品牌(brand)、型号(type)、价格(price)、操作系统(os)和内存(memory);具有功能:查看手机信息(about())、打电话(call(intnumber))、玩游戏(play())。编程要求仔细阅读右侧编辑区内给出的......
  • Oracle查询数据库万能SQL
    Oracle数据库表简要说明数据库表描述USER开头的只能查询自身用户的表DBA开头的最高权限,只能用sys、system用户才能查询CDB开头的ContainerDatabase数据库容器,ORACLE12版本引入ALL开头的sys、system、普通用户都能查查询数据库表--查询数据......
  • 开源模型应用落地-qwen1.5-7b-chat-LoRA微调(二)
     一、前言        预训练模型提供的是通用能力,对于某些特定领域的问题可能不够擅长,通过微调可以让模型更适应这些特定领域的需求,让它更擅长解决具体的问题。    本篇是开源模型应用落地-qwen-7b-chat-LoRA微调(一)进阶篇,学习通义千问最新1.5系列模型的微调方......
  • ETLCloud结合Oracle实现CDC
    CDC,即Change Data Capture(变更数据捕获)功能,主要针对实时数据同步和更新场景,能够实时监测数据库中的数据变化,并将发生变化的数据进行高效精准地捕获和传输,极大地提高了数据处理的效率以及系统的响应速度。在实际应用中,CDC功能对于对数据时效性要求极高的业务场景尤为关键,例如金......
  • 【运维】在阿里云上搭建自己的图床,配合PicGo和Typora使用
    本文将详细介绍如何在阿里云上搭建自己的图床,包括购买OSS服务、配置域名解析、创建OSS存储桶和设置图片上传规则等步骤。希望对您有所帮助!一、购买OSS服务首先,我们需要在阿里云官网购买OSS(ObjectStorageService)服务。OSS是阿里云提供的一种海量、安全、低成本、高可靠的云存......
  • Oracle重做日志文件clear logfile与clear unarchived logfile浅析
    首先,从v$log动态视图中观察到ARC和STATUS两个字段STATUS:分为CURRENT、ACTIVE和INACTIVE三种,当数据库进程DBWn进行一次写入,脏数据从内存刷写到redologfile中,这时承载数据写入的redologfile状态即为CURRENT;而数据从redologfile拷贝到归档目录下时处于ACTIVE状态,完成数据从内存......
  • oracle逐行处理函数LAG
    在Oracle中,要计算一个列除以上一行的同一列值,可以使用LAG函数来获取上一行的值。以下是一个示例SQL查询,它使用LAG来计算当前行除以上一行的同一列值: SELECTcolumn_value,column_value/LAG(column_value)OVER(ORDERBYsome_order_column)ASdivision_resultFROMyour......