ora-12516 tns listener could not find available handler with matching protocol

公司数据库安装的是 Oracle10g XE(Oracle Database Express Edition 10g release 2)。 因我们组日益庞大,最近连接Oracle总出现ora-12516错误,百思不得其解。刚才CUUG群里在讨论oracle的session和connection的问题,一下提醒了我。上服务器看看了,确认了服务器端监听器和DB并没有问题,判断问题可能出现在客户端连接上。经过测试我的判断错了。查找ORA - 12516错误引起的原因,发现为Processes数量导致,Oracle的session和process的关系是sessions = 1.1*processes+5。 这样的话, 增加Processes的数量即可解决。最后的解决方案如下:



【注:session是个派生值,由processes的值决定,公式sessions=1.1*process+5】



方法1:通过SQLPLUS修改(我是这么做的)





login as: oracle

oracle@192.168.0.11's password:

Linux CEO-Server11 2.6.32-33-generic-pae #70-Ubuntu SMP Thu Jul 7 22:51:12 UTC 2011 i686 GNU/Linux

Ubuntu 10.04.3 LTS



Welcome to Ubuntu!

* Documentation: https://help.ubuntu.com/



System information as of Mon Mar 12 15:17:42 CST 2012



System load: 0.13 Temperature: 13 C

Usage of /: 5.2% of 452.76GB Processes: 146

Memory usage: 37% Users logged in: 0

Swap usage: 6% IP address for eth0: 192.168.0.11



Graph this data and manage this system at https://landscape.canonical.com/



96 packages can be updated.

73 updates are security updates.



Last login: Mon Feb 13 15:00:16 2012 from 192.168.0.221

$ sqlplus /nolog

-sh: sqlplus: not found

$ $ORACLE_HOME/bin/sqlplus /nolog



SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 12 15:18:04 2012



Copyright (c) 1982, 2005, Oracle. All rights reserved.



SQL> conn / as sysdba

Connected.

SQL> show parameter processes;



NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

aq_tm_processes integer 0

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 4

log_archive_max_processes integer 2

processes integer 40



SQL> alter system set processes=600 scope=spfile;



System altered.



SQL>



方法2:修改Oracle配置文件(网上说的)

值得注意的是,修改SPFILEORCL.ORA文件中的processes的值,在Oracle的不同版本中有所区别。Oracle9i以下版本中是init.ora文件, 在Oracle9i及更高版本中修改init.ora文件是无效的,这个文件由于是一个二进制的文件, 不能直接使用notepad些类的编辑器打开。否则会报错误ORA - 27101 Shared memory realm does not exist。 使用UltraEdit或者EditPlus之类的可以编辑二进制文件的编辑器打开些文件(直接编辑二进制文件), 然后再重新启动Oracle服务即可。



方法3:通过OEM(Oracle Enterprise Manager Console)在图形化管理器中修改(公司服务器没有图形化界面。苦逼啊只能用命令搞定,没办法这个也没用)



3.1 以系统管理员的身份登入

3.2 进入数据库的例程 - 配置 - 一般信息 - 所有初始化参数

3.3 修改processes的值

3.4 Sessions的值由公式sessions=1.1*process+5派生得到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值