仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 782|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL编程:[Oracle]Oracle毛病案例:TNS-00510

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
与其他数据库相比,MySQL易学易用。<pstyle="TEXT-INDENT:2em">TNS-00510Internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">CauseToomanyfilesorsocketsopensimultaneously(orsomeotherresourcehasbeendepleted).<pstyle="TEXT-INDENT:2em">ActionForfurtherdetails,tracetheoperationforprotocoldetails.<pstyle="TEXT-INDENT:2em">TNS-12500TNS:listenerfailedtostartadedicatedserverprocess<pstyle="TEXT-INDENT:2em">CauseTheprocessofstartingupadedicatedserverprocessfailed.Theexecutablecouldnotbefoundortheenvironmentmaybesetupincorrectly.<pstyle="TEXT-INDENT:2em">ActionTurnontracingattheADMINlevelandre-executetheoperation.VerifythattheOracleServerexecutableispresentandhasexecutepermissionsenabled.EnsurethattheOracleenvironmentisspecifiedcorrectlyinLISTENER.ORA.TheOracleProtocolAdapterthatisbeingcalledmaynotbeinstalledonthelocalharddrive.CheckthatthecorrectProtocolAdapteraresuccessfullylinked.Iftheerrorpersists,contactOracleCustomerSupport.<pstyle="TEXT-INDENT:2em">TNS-12540TNS:internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">CauseToomanyTNSconnectionsopensimultaneously.<pstyle="TEXT-INDENT:2em">ActionWaitforconnectionstocloseandretry.<pstyle="TEXT-INDENT:2em">TNS-12560TNS:protocoladaptererror<pstyle="TEXT-INDENT:2em">CauseAgenericprotocoladaptererroroccurred.<pstyle="TEXT-INDENT:2em">ActionCheckaddressesusedforproperprotocolspecification.Beforereportingthiserror,lookattheerrorstackandcheckforlowerleveltransporterrors.Forfurtherdetails,turnontracingandre-executetheoperation.Turnofftracingwhentheoperationiscomplete.<pstyle="TEXT-INDENT:2em">问:历程的数目会引发监听器毛病吗?<pstyle="TEXT-INDENT:2em">TNS-12500:TNS:listenerfailedtostartadedicatedserverprocess<pstyle="TEXT-INDENT:2em">TNS-12540:TNS:internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">TNS-12560:TNS:protocoladaptererror<pstyle="TEXT-INDENT:2em">TNS-00510:Internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">IBM/AIXRISCSystem/6000Error:11:Resourcetemporarilyunavailable<pstyle="TEXT-INDENT:2em">我们在监听器日记中发明如上的毛病信息。服务器上每一个用户的最猛进程数目被设置600Oracle中的最猛进程数目为600。历程最年夜的使用率是482,每一个会话的最年夜使用率是490。会话的数目设置为840。<pstyle="TEXT-INDENT:2em">依据我所懂得的,看起来历程的数目是没有成绩的。我们经由过程在这个呆板上没法准确创建内存分页空间而对此举行了证明,但是,一些人仍旧告知我们要在肇端的时分增添历程的数目。我分歧意这个概念。我漏掉了甚么吗?<pstyle="TEXT-INDENT:2em">答:TNS-510毛病信息显现了有太多的文件大概socket同时开放了(大概是其他一些资本耗尽了)。这是操纵体系的限定,不是Oracle的限定。你必要确认你的AIX平台能够处置你在服务器上开放的这么多的文件。这是“全体”文件,其实不仅仅是Oracle数据库文件。而且,你还必要确认你的AIX服务器能够准确处置全体数目的Oracle历程,而不单单是公用的服务器历程。Oracle的肇端参数PROCESSES限定了公用的服务器历程数目。可是另有背景的历程(SMON,PMON,LGWR等),和撑持并行语句的历程,更不必说你的监听器等了。我以为你应当设置AIX来同意每一个Unix用户具有更多的历程。总结:TNS-12500,TNS-12540,TNS-12560,TNS-00510办理历程


<pstyle="TEXT-INDENT:2em">一情况:<pstyle="TEXT-INDENT:2em">1平台:IBMAX360,4G内存windows2kadvServersp3+oracle816独有形式<pstyle="TEXT-INDENT:2em">2内存分派相干参数<pstyle="TEXT-INDENT:2em">..processes................=.1000<pstyle="TEXT-INDENT:2em">..shared_pool_size.........=.240000000<pstyle="TEXT-INDENT:2em">..large_pool_size..........=.614400<pstyle="TEXT-INDENT:2em">..java_pool_size...........=.32768<pstyle="TEXT-INDENT:2em">..db_block_buffers.........=.90000<pstyle="TEXT-INDENT:2em">..db_block_size............=.4096<pstyle="TEXT-INDENT:2em">..log_buffer...............=.163840<pstyle="TEXT-INDENT:2em">..log_checkpoint_interval..=.10000<pstyle="TEXT-INDENT:2em">..sort_area_size...........=.65536<pstyle="TEXT-INDENT:2em">..sort_area_retained_size..=.65536<pstyle="TEXT-INDENT:2em">..open_cursors.............=.100<pstyle="TEXT-INDENT:2em">..job_queue_processes......=.4<pstyle="TEXT-INDENT:2em">..job_queue_interval.......=.10<pstyle="TEXT-INDENT:2em">..max_dump_file_size.......=.10240<pstyle="TEXT-INDENT:2em">3最年夜并发用户数:850个摆布<pstyle="TEXT-INDENT:2em">二妨碍征象:<pstyle="TEXT-INDENT:2em">....当用户数到达必定的数目时(700多)客户端毗连服务器时报ora-12560毛病,紧随着报ora-03114毛病,不克不及毗连到服务器。此时已毗连到服务器的用户能一般会见数据库。<pstyle="TEXT-INDENT:2em">....起首检察告诫日记文件,未见到分明毛病信息。<pstyle="TEXT-INDENT:2em">....检察listner.log文件,发明以下信息(良多个相似的毛病纪录,摘两个下去)<pstyle="TEXT-INDENT:2em">.........................<pstyle="TEXT-INDENT:2em">02-JUL-200310:30:09*(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=***.EXE)(HOST=*******)(USER=*****)))*(ADDRESS=(PROTOCOL=tcp)(HOST=*******)(PORT=1136))*establish*ORCL*12500<pstyle="TEXT-INDENT:2em">TNS-12500:TNS:listenerfailedtostartadedicatedserverprocess<pstyle="TEXT-INDENT:2em">.TNS-12540:TNS:internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">..TNS-12560:TNSrotocoladaptererror<pstyle="TEXT-INDENT:2em">...TNS-00510:Internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">....32-bitWindowsError:8:Execformaterror<pstyle="TEXT-INDENT:2em">02-JUL-200310:30:10*(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=***.EXE)(HOST=*****)(USER=***)))*(ADDRESS=(PROTOCOL=tcp)(HOST=******)(PORT=1203))*establish*ORCL*12500<pstyle="TEXT-INDENT:2em">TNS-12500:TNS:listenerfailedtostartadedicatedserverprocess<pstyle="TEXT-INDENT:2em">.TNS-12540:TNS:internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">..TNS-12560:TNSrotocoladaptererror<pstyle="TEXT-INDENT:2em">...TNS-00510:Internallimitrestrictionexceeded<pstyle="TEXT-INDENT:2em">....32-bitWindowsError:8:Execformaterror<pstyle="TEXT-INDENT:2em">.....................<pstyle="TEXT-INDENT:2em">此时,本来已毗连上服务器的用户还能一般利用。检察此时session到达760多个。....重启oracle服务后,能毗连新的用户数,但当并发用户数到达750个以上时,再次报一样的毛病


<pstyle="TEXT-INDENT:2em">三缘故原由剖析:<pstyle="TEXT-INDENT:2em">....体系资本耗竭,意味着体系分派给oracle的内存用尽了。固然我们有4G的物理内存,但一般情形下体系只能给oracle分派2G的内存,这2G的内存中,包含了SGA、PGA等oracle必要利用的全体内存。在独有形式下,每个session将独自分派2M摆布的内存。在本例中,SGA分派了约600M,按每个用户分派2M内存盘算,毗连数到达750个时,总分派内存已到达2G,将不克不及再增添新的毗连数。假如要办理这个成绩,在不做年夜的调剂的条件下,要末减小SGA巨细,要末减小为每个会话分派的内存巨细,以能毗连更多的用户。<pstyle="TEXT-INDENT:2em">四办理历程:<pstyle="TEXT-INDENT:2em">....查阅了oracle文档,文档里提出来了几个办理的举措:<pstyle="TEXT-INDENT:2em">1重置init.ora参数文件,调小以下四个参数的值:<pstyle="TEXT-INDENT:2em">....short_area_size<pstyle="TEXT-INDENT:2em">....hash_area_size<pstyle="TEXT-INDENT:2em">....bitmap_merge_area_size<pstyle="TEXT-INDENT:2em">....create_bitmap_area_seze<pstyle="TEXT-INDENT:2em">....open_cursone<pstyle="TEXT-INDENT:2em">2调小SGA的巨细<pstyle="TEXT-INDENT:2em">3减小oracleJob行列数目(job_queue_processes)和并发行列数(parallel_max_servers)<pstyle="TEXT-INDENT:2em">4重置并减小会话/线程利用的仓库巨细<pstyle="TEXT-INDENT:2em">5将oracle改成mts形式<pstyle="TEXT-INDENT:2em">6改换操纵体系为windowsNT企业版<pstyle="TEXT-INDENT:2em">7利用intel的ESMA硬件撑持,即便用年夜内存<pstyle="TEXT-INDENT:2em">..1)在intel体系上利用/3G开关<pstyle="TEXT-INDENT:2em">..2)利用PSE36内存<pstyle="TEXT-INDENT:2em">....分离本实例的详细情形,决意调剂的次要方针为减小用户的PGA巨细。<pstyle="TEXT-INDENT:2em">....组成PGA的次要内容有short_area_size,hash_area_size,open_cursone,和oracle仓库和TNS仓库。在本实例中,排序区为64K,hash区为128K(短少值),翻开的游标数与使用有关,不克不及任意减小了,但是oracle仓库和TNS仓库都是1M,却有较年夜的减小的余地。因而,调剂的方针定为减小这两个仓库的巨细。<pstyle="TEXT-INDENT:2em">....利用orastack命令来减小这两个仓库的巨细:<pstyle="TEXT-INDENT:2em">D:oracleora81in>orastackoracle.exe500000<pstyle="TEXT-INDENT:2em">CouldntopenfilewithCreateFile()<pstyle="TEXT-INDENT:2em">GetLastError()==32<pstyle="TEXT-INDENT:2em">....中断oracle服务和TNS服务,再运转以上命令<pstyle="TEXT-INDENT:2em">D:oracleora81in>orastackoracle.exe500000<pstyle="TEXT-INDENT:2em">Dumpoffileoracle.exe<pstyle="TEXT-INDENT:2em">CurrentReservedMemoryperThread=1048576<pstyle="TEXT-INDENT:2em">CurrentCommittedMemoryperThread=4096<pstyle="TEXT-INDENT:2em">NewReservedMemoryperThread=500000<pstyle="TEXT-INDENT:2em">D:oracleora81in>orastacktnslsnr.exe500000<pstyle="TEXT-INDENT:2em">Dumpoffiletnslsnr.exe<pstyle="TEXT-INDENT:2em">CurrentReservedMemoryperThread=1048576<pstyle="TEXT-INDENT:2em">CurrentCommittedMemoryperThread=4096<pstyle="TEXT-INDENT:2em">NewReservedMemoryperThread=500000<pstyle="TEXT-INDENT:2em">从头启动oracle服务和TNS服务,翻开数据库,用户毗连到服务器,经测试,用户数到1350以上时数据库仍旧运转一般,办理了本实例存在的成绩。<pstyle="TEXT-INDENT:2em">五小结....现实上,正如oracle文档所指出的那样,要增添用户毗连数的路子良多,除减小用户仓库以外,还能够减小SGA,大概是变动成MTS体例,大概是利用第三方工具增添oracle可用内存。自己后面小结过怎样让oracle在32位的windows操纵体系上利用凌驾2G内存的办法(http://www.itpub.net/showthread.php...15&pagenumber=1),在本平安使用中,宜将二者(减小用户仓库与增添oracle可用内存)分离起来利用,以进步数据库功能。可是,这类体例下,一样不成能无穷制地增添用户毗连数。要想利用户毗连数到达更年夜,则应利用MTS体例。
为维持生产环境和非生产环境需要不断地投入管理支持费用MySQL学习教程,最终导致客户为数据库资源投入巨额成本。
透明 该用户已被删除
沙发
发表于 2015-1-19 09:36:16 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
山那边是海 该用户已被删除
板凳
发表于 2015-1-27 07:56:36 | 只看该作者
我个人认为就是孜孜不懈的学习
兰色精灵 该用户已被删除
地板
发表于 2015-2-5 04:47:50 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
精灵巫婆 该用户已被删除
5#
发表于 2015-2-11 05:34:09 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-1 22:32:27 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
活着的死人 该用户已被删除
7#
发表于 2015-3-11 01:04:22 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
再现理想 该用户已被删除
8#
发表于 2015-3-17 17:12:09 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
海妖 该用户已被删除
9#
发表于 2015-3-24 17:01:07 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 11:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表