用户应用大面积间歇性离线之ORA-00020

本文记录了一次由于未及时重置数据库密码,导致进程数超过限制,进而引发ORA-00020错误的故障处理过程。通过查看alert日志、确认最大连接数及当前连接数,最终通过修改数据库密码和最大连接数解决了问题。建议建立定期重置数据库密码的脚本来避免类似情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        2018年5月11日上午11点,突然被客户通知用户无法正常使用某办公软件,迅速到客户办公室查看具体现象,具体如下:

                                                      

        将该情况反馈给开发公司,开发公司反馈需查看日志报错情况,迅速到机房执行以下命令。

        tail -500f *.log

        查询到如下信息。


        开发人员反馈说,系统设置为三个月内需重置一次数据库密码,没有及时重置密码导致报错。好吧,先看一下alert日志,确定原因。

        先进入到alert日志路径

        /u01/app/oracle/diag/rdbms/sid/sid/trace

        进行关键词搜索

        grep "ORA-" alert_sid.log | tail -50

        获取到以下错误:

        ORA-00020: maximum number of processes () exceeded
        ORA-00020: maximum number of processes (150) exceeded

        ORA-20 errors will not be written to the alert log for the ORA-20 errors.

        切换到oracle用户,连接数据库查看一下数据库允许的最大连接数,当前的数据库连接数。

        sqlplus  */* as sysdba

        select value from v$parameter where name ='processes';--数据库允许的最大连接数

        select count(*) from v$process;--当前的数据库连接数

        好吧,进程数已满,于是等到12点,停应用,停数据库,重置数据库密码,同时增加连接数。

        alter uesr XXX identified by XXX;--修改数据库用户密码

        alter system set processes = 300 scope = spfile;--修改最大连接数

        得到二线工程师确认后,执行以上命令,重启数据库,重启服务,OK,这次故障事件得到解决。

        总结,此次故障因未及时重置数据库密码,导致进程数异常增加最后达到上限,应用服务异常,最后重置密码,并为了保险起见增大进程数,重启数据库,重启服务,此次故障得以解决。因此次故障影响时间断较短,并及时解决,未遭到客户指责。为杜绝以上情况产生,个人建议编辑一个定期重置数据库密码的脚本。

        鉴于本人还是菜鸟,脚本编辑待我研究研究再说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值