用过Oracle的应该都熟悉如何查看和设置Oracle数据库的最大连接数。这里就再啰嗦一遍。

查看当前的连接数,可以用select count(*) from v$process;
设置的最大连接数(默认值为150)select value from v$parameter where name = ‘processes’;
修改最大连接数alter system set processes = 300 scope = spfile;

都知道,当数据库最大连接数不够时会出现客户端连接间歇性失败,报错ORA-12519。设置大点一般就可以了。但是做大型项目的时候还是会遇到一些不正常的问题,比如:设置最大连接数800,但是正常连接200多个就会报错,这也是我在一次面试中得知的。回来因为自己的垃圾机器上没有装Oracle,就查了些资料,发现还真的有这个问题,不过不是什么难题,貌似很多人遇到过,看来我们真的做项目太少了吧,顶多同时测试的也就十多个人。

网上搜集到有此类问题的描述,如下。

服务器IBM XSERVER,内存:4G
oracle 数据库配置的主要参数如下:

processes integer 500
sessions integer 585
pga_aggregate_target big integer 350M
sga_max_size big integer 1256M
sga_target big integer 1152M
shared_pool_size big integer 400M
large_pool_size big integer 16M

看样子挺不粗的配置,但是就这样默认情况还是会出现连接数不够的现象。数据库配置的连接数是500个,但是现在当Oracle的连接数达到120个时候,其他的客户端就无法再连接上Oracle服务器了,报个错:ORA-12518: TNS: 监听程序无法分发客户机;但是已经连接上数据库的应用还可以正常应用,就是其他没连上的就再也连不上了,除非已有的连接有退出的,其他的才能再联上,就是可连接的总数是120个;

有网友说是在可以在listener.ora中加入一行: direct_handoff_ttc_ =off,经测试此方法依旧不行;

这期间我尝试着把pga_aggregate_target 改成200或者500等,结果是一样的。也尝试着把sga_target改成800m后,结果数据库就起不来了,提示说要不能小于1024m。

后来查到有可能是oracle 10g for win32的一个bug,上网下了补丁,打完补丁后的版本是:10.2.0.3;也曾怀疑是不是windows 2003的tcp连接数不够,上网查说好像是有这毛病,下了个2003的补丁,把tcp连接数扩到了1000,结果能够达到可以有250个并发连接,但是再多就又连不上了。

现在就是不太清楚究竟是什么参数配置的不合适(不管是oracle10g的,还是windows 2003的),才会造成实际上没有达到oracle设置的最大连接数时就不能连接了。

最后,怀疑是不是windows 2003(32位)的问题,于是就装了个64位的windows 2003,同样版本的oracle 10g,装好后就把连接数process参数配置成800,然后做连接测试,一直可以有800个session连接上来,到现在为止,可以大致总结出症结所在了,就是windows 2003 server(32位)的操作系统,在安装oracle 10g(10.2.0.1-10.2.0.3)时有问题,连接数不能达到系统配置的那么大,可以采用64位的替代。找到问题根源了,就可以想到究竟为什么windows 2003 server(32位)的操作系统和oracle 10g数据库连接数会有限制,修改一下2003的配置或者oracle 10g的配置, 就可解决掉这个问题。

解决方案:
A.修改Oracle参数

1、原有参数
#pga_aggregate_target=67108864
#processes=500
#sessions=555
# pga_aggregate_target此参数是扩大并发连接数占用内存大小。
# 可调整此参数,放大或缩小,同时影响并发数量。
# 公式: 约=可按照并发数量*4M
pga_aggregate_target=720M
# processes、sessions是扩大并发连接数,是同时使用。
# 公式: sessions = processes *1.1 +5
processes=600
sessions=665
2、在监听参数文件LISTENER.ORA 文件中增加参数
direct_handoff_ttc_listener = off
3、重新启动数据库服务。

B.修改windows配置

1、修改Windows系统中Boot.ini文件
/3GB /PAE
说明:修改操作系统中Boot.ini文件,可以使Oracle使用更多的内存空间。
2、修改用户组策略中锁定内存页大小权限。
参数修改完毕问题解决。
3、重启计算机。

问题总结,内容摘自网络

Oracle超出最大连接数问题及解决的更多相关文章

  1. mysql超出最大连接数解决方法

    遇到mysql超出最大连接数,相信不少人第一反应就是查看mysql进程,看有没有慢查询,当然这个做法是完全正确的!但是很多时候真正的问题不在这里.今天有遇到同样的问题,一味查看mysql进程和慢查询日 ...

  2. windows远程桌面如果超出最大连接数, 使用命令行mstsc /console登录即可

    远程桌面如果超出最大连接数, 使用命令行mstsc /console登录即可. (也可以用 mstsc /admin) 可以在运行里使用mstsc /console /v:IP:远程端口即可强制登录; ...

  3. oracle当前的连接数

    怎样查看oracle当前的连接数呢?只需要用下面的SQL语句查询一下就可以了. select * from v$session where username is not null select us ...

  4. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法 (2011-05-05 16:08:05) 转载▼ ...

  5. 查看oracle数据库的连接数以及用户

    查看oracle数据库的连接数以及用户 11.查询oracle的连接数2select count(*) from v$session;32.查询oracle的并发连接数4select count(*) ...

  6. navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法

    原文:navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法 ...

  7. oracle超出打开游标的最大数的原因和解决方案

    oracle超出打开游标的最大数的原因和解决方案 分类: Oracle相关2012-06-05 10:36 6362人阅读 评论(0) 收藏 举报 oracle数据库sqljavasessionsys ...

  8. mstsc远程报:这可能是由于CredSSP 加密Oracle修正的两种完美解决方法

    win10很完美,用的也很舒服!当然人无完人,也总有不尽如人意的时候.比如说我们经常用的远程mstsc,就出现了一个坑,既然出现坑了,我们就得把坑解决掉吧!下面就记录一下这个坑的解决方法. 本文地址: ...

  9. imp导入时 出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决方法

    cmd命令下--执行imp命令时,出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决办法:在imp命令里加入 statistics=none (不导入数据库统计信息) ...

随机推荐

  1. ti processor sdk linux am335x evm /bin/setup-uboot-env.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-uboot-env.sh hacking # 说明: # 本文主要对TI的sdk中 ...

  2. LeetCode: Interval

    (1)Merge Intervals https://leetcode.com/problems/merge-intervals/ Given a collection of intervals, m ...

  3. Oracle表与索引的分析及索引重建

    1.分析表与索引(analyze 不会重建索引)   analyze table tablename compute statistics 等同于 analyze table tablename co ...

  4. <七>面向对象分析之UML核心元素之包

    一:基本概念 

  5. Oracle 11g AMM与ASMM切换

    现在的Oracle正在往智能化方向发展.如果我们现在找一些8i/9i时代的Oracle书籍,怎么样配置合适的数据库各内存池大小是非常重要的话题.但是进入10g之后,自动内存池调节成为一个重要Oracl ...

  6. bzoj 1001: [BeiJing2006]狼抓兔子 平面图最小割

    平面图跑最大流 可以转换为其对偶图跑最短路 一个环对应一个割  找到最小环(即最短路)极为所求,注意辅助边的建立 加入读入优化  不过时间还是一般  估计是dij写的不好   大神勿喷~~~ /*** ...

  7. [Web API] 如何让 Web API 统一回传格式以及例外处理

    [Web API] 如何让 Web API 统一回传格式以及例外处理 前言 当我们在开发 Web API 时,一般的情况下每个 API 回传的数据型态或格式都不尽相同,如果你的项目从头到尾都是由你一个 ...

  8. ARM指令协处理器处理指令

    ARM支持16个协处理器,在程序执行过程中,每个协处理器忽略属于ARM处理器和其他协处理器指令,当一个协处理器硬件不能执行属于她的协处理器指令时,就会产生一个未定义的异常中断,在异常中断处理程序中,可 ...

  9. Javascript——说说js的调试

    最近比较吐槽,大家都知道,现在web前端相对几年前来说已经变得很重了,各种js框架,各种面对对象,而且项目多了,就会提取公共模块. 这些模块的UI展示都一样,不一样的就是后台逻辑,举个例子吧,我们做企 ...

  10. LeetCode题解——Palindrome Number

    题目: 判断一个数字是不是回文数字,即最高位与最低位相同,次高位与次低位相同,... 解法: 求出数字的位数,然后依次求商和求余判断是否相等. 代码: class Solution { public: ...