专栏首页奔跑的人生Oracel数据库连接时出现:ORA-12518:监听程序无法分发客户机连

Oracel数据库连接时出现:ORA-12518:监听程序无法分发客户机连

在连接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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Paging在RecyclerView中的应用,有这一篇就够了

    经过一年的发展,AAC又推出了一系列新的组件,帮助开发者更快的进行项目框架的构建与开发。这次主要涉及的是对Paging运用的全面介绍,相信你阅读了这篇文章之后将...

    程序亦非猿
  • Mysql查询及高级知识整理(上)

    SQL:Structured Query Language,结构化查询语言。

    疯狂的KK
  • SQL 优化引擎内幕

    SQL Server 的优化器是基于成本计算的,高质量的执行计划来自于对成本的准确估算。而整个计划成本的估算,则是基于对每一步操作或实现操作的每个算法的开销估算...

    用户1564362
  • 分布式锁在JPA ID生成器中的应用

    在现实生活中,很多场景都需要ID生成器,比如说电商平台的订单号生成、银行的叫号系统等。针对不用的业务需求,ID生成策略也不一样,比如电商平台的订单号可以由时间序...

    Bruce Li
  • 外行学 Python 第十一篇 数据可视化

    在 外行学 Python 爬虫 第九篇 读取数据库中的数据 中完成了使用 API 从数据库中读取所需要的数据,但是返回的是 JSON 格式,看到的是一串的字符串...

    keinYe
  • ASP.NET(C#)操作SQL Server数据库

    该段代码写在需要创建数据库对象的地方。其中Data Source为数据库服务器来源,本地服务器可用小数点表示;Initial Catalog为欲连接的数据库名称...

    悠风
  • CentOS6下使用pv+nc命令传输文件

    由于有时Linux服务器可能网络等等其它原因没法通过rsync 或者scp的方式传输文件,那有没有更简洁的方式来进行文件传输呢

    yuanfan2012
  • MySQL 5.5升级5.7小试

    下午的时候接到业务部门的一个需求,他们有一个业务对性能要求比较高,在测试环境已经做了一些测试和优化,想看看在MySQL新版本中是否有一定的提升,现在使用的数...

    jeanron100
  • 面试题:InnoDB中一棵B+树能存多少行数据?

    因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。

    Yajun_
  • 开源一个小程序,还教部署那种。

    之前有给小伙伴们承诺过一个开源一个小程序,今天开始开源一个部署上线的打卡小程序:一见打卡。

    月小水长

扫码关注云+社区

领取腾讯云代金券