- 浏览: 74849 次
- 性别:
- 来自: 苏州
最新评论
ora-12516 tns listener could not find available handler with matching protocol
- 博客分类:
- Oracle
公司数据库安装的是 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派生得到
【注: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派生得到
发表评论
-
Oracle的schema、方案、模式、用户
2012-12-07 12:11 1035今天才对这几个概念 ... -
DBMS_STATS.GATHER_TABLE_STATS详解
2012-08-15 15:12 1691作用:DBMS_STATS.GATHER_TABLE_S ... -
Oracle表连接操作——Merge Sort Join(合并排序连接)
2012-08-15 15:12 3294关系型数据库并不是最早出现的数据库表现形式,之前还存在层 ... -
Oracle表连接操作——Nest Loop Join(嵌套循环)
2012-08-15 15:12 7854关系型数据库并不是最 ... -
Oracle hash join
2012-08-15 15:13 983hash join是oracle里面一个 ... -
Oracle表连接操作——Hash Join(哈希连接)下
2012-08-15 15:13 1615Hash Join是Oracle CBO时代经常出现的一 ... -
Oracle表连接操作——Hash Join(哈希连接)上
2012-08-14 14:19 13890在Oracle中,确定连接操作类型是执行计划生成的重要方 ... -
oracle 递归查询,向上和向下遍历
2012-08-14 11:10 19240--查询全部资源信息 select * from urm_cl ... -
ORACLE中Like与Instr性能大比拼(转)
2012-08-14 11:09 917http://zhaolinjnu.blog.sohu.com ... -
SQL语句优化技术分析
2012-08-14 11:08 910一、操作符优化1、IN 操 ... -
CBO和RBO介绍
2012-08-14 11:08 853Rule Based Optimizer(RBO) ... -
Install Oracle10gXE on Ubuntu Server using apt
2012-03-19 17:22 796With Oracle Database XE in prod ... -
Merge into 详细介绍
2012-03-15 15:40 892/*Merge into 详细介绍 MERGE ... -
CUUG《Oracle 监听和TNS配置》- 笔记
2012-02-24 22:07 2162监听负责多个实例 相关文件:Listener.ora和 ... -
批处理备份oracle
2012-02-24 22:07 793@echo off @title Oracle简易数据备份工具 ... -
oracle-ORA的原理
2012-02-07 14:15 10041、在一个应用环境当中,所有的服务器使用和管理同一个数据库,目 ... -
Oracle的卸载过程
2012-02-07 12:15 850修改注册表,在开始运行中执行regedit命令,进入注册表, ... -
创建表空间文件
2012-02-07 12:12 2202--1 创建表空间文件 --1.1 创建ASIT 实体表空间 ... -
SQL触发器实例讲解
2012-02-07 12:10 809SQL触发器实例1 定义: ... -
oracle 10g 默认用户名密码及解锁
2012-02-07 12:04 9551. 安装时选择的自动安装,忘了用户名和密码,导致现在试了几个 ...
相关推荐
Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack
收集的关于 ORA-12516 or ORA-00020 TNS 监听程序无法找到匹配协议栈的可用句柄
ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案
ORA-12560 TNS 协议适配器错误
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
ORA-12518 TNS:监听程序无法分发客户机连接,在您安装好数据库后配置连接数据库的过程中遇到这类问题应该很头疼吧,不过,当您还是四处查资料来解决您遇到的另你头疼的问题时,如果不经意间看到了这则贴子,那请您升...
实验得来的,不是随便copy的, ORA-12560TNS协议适配器错误,这个问题可定可以解决
ORA-12514 TNS 监听程序当前无法识别连接描述符中请求的服务
客户端进行连接的时候,系统不定期出现ora-12520,ora-12516的连接问题, 问题解决方案建议: 1、增加process和session的连接数。 2、检查连接的应用,是不是有没有释放的连接。 3、将修改参数local_listener中的vip为...
本文适用于本地的客户端连不上服务器的情况,并且对于怎样实现内网和外网的同时访问有一定的参考。
ORA-12154: TNS: 无法解析指定的连接标识符的解决方法
ORA-12154 TNS 无法解析指定的连接标识符
ORA-12514TNS监听程序当前无法识别连接描述符中请求服务的解决方法[借鉴].pdf
之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not currently know of SID given in connect descriptor
ORA-12154_TNS无法解析指定的连接解决方法 包含多钟可能的情况的解决方式。
ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 解决方法ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 解决方法ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 解决方法ORA-12514 ...
Microsoft OLE DB Provider for ODBC Drivers 错误'80040e4d'[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified. 使用PL-SQL Developer能连接上Oracle,但是ASP+ODBC连不上...
oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht
相信各位都遇到过这样一个问题吗,数据库安装好一后过不了几天,就会出现连接不上本地数据库的的事情,而且还会出现报错代码,在这个时候你可能就不知所措了,而对于新手来说就更成问题了,而且无从下手,而解决这个...