在连接Oracel数据库时,每隔一段时间就会出现:ORA-12518:监听程序无法分发客户机连接,如图

上网查了资料原因和解决方案如下:

一、【问题描述】

最近,在系统高峰期的时候,会提示如上的错误,致使无法连接到服务器上的数据库。

二、【分析过程】

1、首先判断是否由于监听配置不正确的原因导致?

系统在正常情况下都可以正常的使用,检查监听配置,完全正确,监听配置不正确的可能性排除.

2、是否因为数据库服务器处于共享服务器模式,是否会因为DISPATCHERS的数量太少,导致在高峰期的时候无法及时的分配客户机连接呢?

把ORACLE的DISPATCHER数量增加到3个,发现在系统高峰的时候还是会出现如此的问题,可确定不是DISPATCHER的问题。

3、判断是否PROCESS、SESSION数量设置的不够,导致ORACLE在高峰期的时候,没有足够的PROCESS对连接上来的客户服务进行分配?

增大PROCESS、SESSION的设置,这种情况基本能够得到解决,出现的频率已经很少,但在一定的情况下,还是会出现以上的提示。

4、在网上查找资料后发现,32位的WIN2003系统ORACLE单进程的限制为1.7G,对于超过的内存,ORACLE也无法使用,导致ORACLE在高峰期对客户机分配到一定数量的时候,导致ORACLE可用的内存不足,导致以上提示..此时,只有通过降低SGA的大小,以使得ORACLE有更多的内存可以对客户端进行分配.

经检查,现场的托管服务器环境为:32位的WIN32以及32位的ORACLE..直接导致ORACLE能够使用的内存不超过1.7G,对SGA的大小进行一定量的减少,系统基本不再出现无法分配的问题。

三、【解决途径】

1、首先修改ORACLE的PROCESS、SESSION数量

查看当前ORALCE PROCESS数量

SQL> show parameter process

查看当前ORALCE SESSION数量

SQL> show parameter session

修改PROCESS数量:

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

修改SESSION数量:

SQL> alter system set session=1105 scope = spfile;

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

2、降低系统的SGA大小

查看SGA的大小:

SQL> show parameter sga

同时修改sga_max_size和sga_target

SQL>  alter system set sga_max_size=1000M scope = spfile;

SQL>  alter system set sga_target=1000M scope = spfile;

重启ORACLE服务,问题基本解决。

四、【经验总结】

虽然通过增加PROCESS、SESSION数量并且降低了SGA的大小,使得整个托管的服务器的问题得到解决。但是,通过上面的问题分析可以知道,这只是治标不治本的处理方式,问题的最终原因还是因为32的WIN 2003操作系统+32位的ORACLE导致单进程最高内存不能超过1.7G导致的。所以在以后县区的数据加至现在的服务器中,必将导致这个问题的重现.

所以,最终的解决办法是,将数据库和服务器的操作系统全部升级至64位,或者将服务器使用UNIX的操作系统.

所以,在以后类似的托管服务器或者其他数据库服务器搭建时,一定要注意这个问题,如果客户提供的服务器为32位的,那么,一定要反应出这个问题.

转自:http://blog.csdn.net/zouyujie1127/article/details/16883493

Oracel数据库连接时出现:ORA-12518:监听程序无法分发客户机连的更多相关文章

  1. ora 12518监听程序无法分发客户机连接

    首先修改ORACLE的PROCESS.SESSION数量 查看当前ORALCE PROCESS数量 SQL> show parameter process 查看当前ORALCE SESSION数 ...

  2. ORA-12518: TNS: 监听程序无法分发客户机连接

    在团队成员增多时,经常出现“无法分发客户端连接”等问题.在网上搜索一番后,最终解决了该问题,现将解决方案总结如下,以供参考和以后备用. 原因:团队成员增多,原有数据库设置不够用,导致连接plsql和启 ...

  3. oracle:TNS:监听程序无法分发客户机连接

    挂上vpn的时候,PL/SQL连接到oracle的时候,显示ORA-12518:监听程序无法分发客户机连接.如下图: 一.[问题描述] 最近,在系统高峰期的时候,会提示如上的错误,致使无法连接到服务器 ...

  4. ORA-12518 TNS:监听程序无法分发客户机连接 解决办法

    查询的脚本: select count(*) from v$process; --取得数据库目前的进程数. select value from v$parameter where name = 'pr ...

  5. 连接Oracle时ORA-12541 TNS 无监听程序

    http://www.cnblogs.com/Qian123/archive/2016/08/24/5803085.html

  6. ORACLE telnet 1521 不通及ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务的解决

    服务器上安装了oracle11g , 防火墙上已经增加1521 入站规则.但是内网客户端配置好了TNS无法连接.telnet 1521 不通. 需要在服务器上\product\10.2.0\db_1\ ...

  7. 解决PL/SQL Developer连接数据库时出现 “ORA-12541:TNS:无监听程序”错误

    在用PL/SQL Developer连接数据库时出现“ORA-12541:TNS:无监听程序”错误. 1.检查listener.log日志发现下面错误:TNSLSNR for 32-bit Windo ...

  8. 新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序

    新建一个oracle数据库时,当提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序等字样的时候,问题是那个监听的服务没有启动,解决方法如下: 打开cmd命 ...

  9. lsnrctl start 命令未找到 数据库连接报错“ORA-12541: TNS: 无监听程序”

    1. lsnrctl start 命令未找到 或者bash:lsnrctl:command not found. su - oralce        切换用户的时候,中间要有-,而且-的两边有空格, ...

随机推荐

  1. javascript选取文档元素

    用指定的id属性 用指定的name属性 用指定的标签名字 用指定的CSS类 匹配指定的CSS选择器 通过ID选取元素 var section1 = document.getElementById(&q ...

  2. HDU1853 Cyclic Tour(最小费用最大流)

    题目大概说给一张有向图,每条边都有权值,要选若干条边使其形成若干个环且图上各个点都属于且只属于其中一个环,问选的边的最少权值和是多少. 各点出度=入度=1的图是若干个环,考虑用最小费用最大流: 每个点 ...

  3. ACM 16进制的简单运算

    16进制的简单运算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果.   输入 第一行输入一个正整 ...

  4. js的BOM对象完全解析

    BOM即浏览器对象模型,它包括如下一些对象! (一)screen对象,Screen 对象中存放着有关显示浏览器屏幕的信息. 常见的属性有: availHeight:返回显示屏幕的高度 availWid ...

  5. 3分钟wamp安装redis扩展超级简单

    windows10(win8.1等系统应该是一样的) wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 很简单只需要3步,主要是安装redi ...

  6. 【HDU】1848 Fibonacci again and again

    http://acm.hdu.edu.cn/showproblem.php?pid=1848 题意:同nim,3堆,每次取的为fib数,n<=1000 #include <cstdio&g ...

  7. 如何用ActiveQt写导出类

    如何用ActiveQt写导出类 最近一直在用ActiveQt框架来写ActiveX插件, 由于项目需要提示类的导出, 所以上午捣鼓了一下, 现在记录记录.其实内容主要是把Qt手册里自己用到的部分整理一 ...

  8. 深入浅出 - Android系统移植与平台开发(三)- 编译并运行Android4.0模拟器

    作者:唐老师,华清远见嵌入式学院讲师. 1.   编译Android模拟器 在Ubuntu下,我们可以在源码里编译出自己的模拟器及SDK等编译工具,当然这个和在windows里下载的看起来没有什么区别 ...

  9. 利用iframe将div放置在object的上面

    这两天在写一个用object上传照片的网页,在上传时,需要弹出一个进度条的div,我就按照正常的思维模式,将进度条div设为绝对定位,将其z-index设置的很大,结果,进度条div被object给遮 ...

  10. [LintCode] Pow(x, n) 求x的n次方

    Implement pow(x, n). Notice You don't need to care about the precision of your answer, it's acceptab ...