oracle 22908,【CONNECT】ORA-00020错误处理方法

项目经理:快快,嘉儿,应用连不上了报ORA-12560:TNS:协议适配器错误,按照百度上的我都查过了,没有问题

我:准备用sqlplus as sysdba连接数据库,发现问题了——

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

超出最大连接数,sqlplus也连不上去,针对这种情况,我们只能杀掉一些无用的数据连接进程(若要杀掉应用的相关进程,最好让他们先把应用停掉,然后再kill掉相关进程,oracle的后台进程一定不能随便kill),让sqlplus可以正常登录,然后再去改相关的参数

【windows】

C:\Users\Administrator>netstat -bo

活动连接

协议  本地地址      外部地址      状态        PID

TCP    [fe80::942a:8432:c23f:69ff%19]:1521  SS-LiangWei:50248      ESTABLISHED   2528  [TNSLSNR.exe]

TCP    [fe80::942a:8432:c23f:69ff%19]:1521  SS-LiangWei:50350      ESTABLISHED   2528  [TNSLSNR.exe]

TCP   [fe80::942a:8432:c23f:69ff%19]:50248  SS-LiangWei:1521       ESTABLISHED    2604  [ORACLE.EXE]

TCP   [fe80::942a:8432:c23f:69ff%19]:50350  SS-LiangWei:1521       ESTABLISHED     3920 [plsqldev.exe]

C:\Users\Administrator>taskkill pid 3920

成功: 给进程发送了终止信号,进程的 PID 为 3920。

然后sqlplus可以正常登录

【linux】

1)查看数据库后台进程信息ora11g@db /home/oracle$ps -ef | grep ora11g(实例名)oracle   22882     1  0 21:24 ?        00:00:00 ora_pmon_ora11goracle   22884     1  0 21:24 ?        00:00:00 ora_vktm_ora11goracle   22888     1  0 21:24 ?        00:00:00 ora_gen0_ora11goracle   22890     1  0 21:24 ?        00:00:00 ora_diag_ora11goracle   22892     1  0 21:24 ?        00:00:00 ora_dbrm_ora11goracle   22894     1  0 21:24 ?        00:00:00 ora_psp0_ora11goracle   22896     1  0 21:24 ?        00:00:00 ora_dia0_ora11goracle   22898     1  0 21:24 ?        00:00:00 ora_mman_ora11goracle   22900     1  0 21:24 ?        00:00:00 ora_dbw0_ora11goracle   22902     1  0 21:24 ?        00:00:00 ora_lgwr_ora11goracle   22904     1  0 21:24 ?        00:00:00 ora_ckpt_ora11goracle   22906     1  0 21:24 ?        00:00:00 ora_smon_ora11goracle   22908     1  0 21:24 ?        00:00:00 ora_reco_ora11goracle   22910     1  0 21:24 ?        00:00:00 ora_mmon_ora11goracle   22912     1  0 21:24 ?        00:00:00 ora_mmnl_ora11goracle   22914     1  0 21:24 ?        00:00:00 ora_d000_ora11goracle   22916     1  0 21:24 ?        00:00:00 ora_s000_ora11goracle   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_ora11goracle   22961     1  0 21:24 ?        00:00:00 ora_cjq0_ora11goracle   22972     1  0 21:25 ?        00:00:00 ora_q000_ora11goracle   22974     1  0 21:25 ?        00:00:00 ora_q001_ora11goracle   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数据库后台进程不可轻易手工杀掉

ora11g@db /home/oracle$kill -9 22945

【最终解决】

当sqlplus可以连接数据库后,根据业务需求增大进程数

alter system set processes=1000 scope=spfile;

关库起库

确认调整结果

show parameter processes;

show parameter sessions;

对于生产环境最有效的避免发生ORA-00020错误的方法便是,创建数据库时充分评估系统需要的最大进程数,一次性设置充分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值