ORAora 125000怎么解决 ?

windows下面ORA-04030&TNS-12500问题解决办法
在32位的windows下面安装的oracle数据库,由于内存寻址的限制,如果并发用户数比较多,经常会出现ORA-04030和TNS-12500错误,主要的原因是由于oracle.exe占用的内存达到了2G左右,达到了系统的限制,解决办法有下面几个:
1、如果服务器内存大于4G,小于16G,在boot.ini文件中同时使用/3GB /PAE参数,保证oracle.exe能使用3G的内存。
使用下面的命令,修改oracle.exe
和tnslsnr.exe等文件占用的内存大小
默认情况下,一个连接oracle.exe使用的内存是1M,通过下面的命令可以减少到512k
orastack oracle.exe 524288
orastack tnslsnr.exe 524288&&
假如有500个连接,可以节省500*512K=250M的内存。
3、对于inactive的会话,如果空闲时间操作10分钟,断开这个连接,以释放内存(这点需要业务部门的确认)
通过执行下面3个操作来达到释放内存的目的:
a.修改$ORACLE_HOME/network/admin/sqlnet.ora文件,加上:
SQLNET.EXPIRE_TIME=10
表示断开空间超过10分钟的会话。
创建一个新的profile文件
create profile idleprofile limit idle_time 10;
最后修改参数文件设置resource_limit=true
4、调整,并减低sort_area_size大小。
5、可以考虑使用MTS或shared server方式,减低系统内存的消耗。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。博客访问: 181078
博文数量: 115
注册时间:
鏆傛棤浠嬬粛
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Oracle
今天市场人员报告说数据库报错:ora-12500 :TNS:监听器无法启动专用服务器进程告诉市场人员这个错误的原因很多,询问具体情况,市场人员说是个别客户端出现这种情况,而且时有时无,流量大的时候报的多。由此确定是链接数过多,超过了数据库最大连接数的限制。查看数据库process和sessions参数,都是300。这个数已经不小了,因为机器是pc服务器,性能一般。市场人员建议增大到1000,我让他查询select count(10 form v$select count(1) from v$session where status = 'INACTIVE';结果是121和117。看来有可能是客户端的程序没有关闭链接,导致很多进程闲至,没有释放资源。于是建议他们查看代码中访问数据库的部分,结果发现大量的方法最后没有关闭数据库链接。问题找到了。他们改程序去了。[@more@]
阅读(15199) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。1380人阅读
ORACLE(30)
OS:AIX 5.3$oslevel -s-0748DB:Oracle 9206
我们的一台生产环境,突然系统监测到大量的连接失败,通过监听的日志,可以发现部分连接是成功的,部分连接是失败的。如
成功的连接
14-APR-:31 * (connect_data=(service_name=feel)(server=dedicated)(CID=(PROGRAM=java)(HOST=shop48.cm2)(USER=admin))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.19.26.48)(PORT=49288)) * establish * feel * 0
失败的连接
14-APR-:31 * (connect_data=(service_name=feel)(server=dedicated)(CID=(PROGRAM=java)(HOST=app131)(USER=admin))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.60.131)(PORT=55076)) * establish * feel * 12500TNS-12500: TNS:listener failed to start a dedicated server processTNS-12540: TNS:internal limit restriction exceededTNS-12560: TNS:protocol adapter errorTNS-00510: Internal limit restriction exceededIBM/AIX RISC System/6000 Error: 12: Not enough space
失败的连接反馈给前端的错误是Ora-12500错误,系统级别的错误是internal limit restriction exceeded,以及错误12:Not enough space。通常,AIX的错误12都是指内存不够,但是这个系统的总内存是64G,还存在大量剩余空间,交换空间的使用率也不超过2%。开始以为是连接数与文件句柄的限制,但是修改了系统参数maxuproc(每用户的最大进程限制)从(系统当时实际使用的进程数小于1000个),用户文件句柄限制ofiles(descriptors)从,都没有效果。根据错误类型12,还是把问题定位在内存上面,查看SGA大小,占了45G,约系统总内存的70%,加上系统自身要消耗10%的内存,合计80%的内存,这部分内存是不能交换的,而OS的系统参数maxpin%正好默认是80%,修改maxpin%到90%,问题解决,所有的连接正常。正常情况下,系统的内存分计算内存与非计算内存(如文件系统cache),SGA与系统的这部分内存都属于计算内存,在AIX的早期版本(如Aix 5.2),如果内存不够,这部分内存是可以交换的,但是后期的版本,如Aix 5.3以后,因为large page的引进,这部分内存是长驻内存而不能交换的(不知道是进步还是退步)。所以,当这部分内存达到maxpin%的时候,就会发生内存不够,如果超出,就会发生系统hang住,所有的连接都无法进入,我们的这个实际案例是幸运的,只是在临界点附近颠簸,并没有引起系统的瘫痪。修改maxpin%是一个解决方法,但同时也要注意maxperm%,maxclient%与minperm%的正确设置,以及其它内存的使用,因为除了系统以及SGA之外,还有进程空间(进程使用内存,有一部分是可交换的,有一部分也是属于系统级别,不可交换的),以及文件系统Cache,设置lru_file_repage=0,可以保证在minperm%之上,优先交换非计算内存。至于刚上线的时候是正常的,为什么运行一段时间以后才不正常,可能是因为连接数的增加,导致系统消耗以及内存增加,慢慢的达到了临界点。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:64085次
排名:千里之外
原创:27篇
转载:21篇
(3)(1)(7)(2)(13)(8)(5)(9)}

我要回帖

更多关于 ora 00933怎么解决 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信