600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 在Oracle 11g中用看Oracle的共享内存段---------IPCS

在Oracle 11g中用看Oracle的共享内存段---------IPCS

时间:2024-07-11 02:53:07

相关推荐

在Oracle 11g中用看Oracle的共享内存段---------IPCS

很早之前,在一次讲课了,用了命令ipcs,发现oracle的共享内段好小,如下:

oracle@mydb~]$ipcs-a------SharedMemorySegments--------keyshmidownerpermsbytesnattchstatus0x0000000032768root6447220x0000000065537root6441638420x0000000098306root64428020x000000001409028oracle640409600x000000001441797oracle640409600x079918e81474566oracle64040960------SemaphoreArrays--------keysemidownerpermsnsems0x87a36da41343489oracle640154------MessageQueues--------keymsqidownerpermsused-bytesmessages

今天突然想起,刚好有空,来总结一下:

上面显示Oracle共享内存段只有4096个字节,这太小了吧,哦,对了,我这是Oracle11g:

sys@OCM>select*fromv$version;BANNER--------------------------------------------------------------------------------OracleDatabase11gEnterpriseEditionRelease11.2.0.3.0-64bitProductionPL/SQLRelease11.2.0.3.0-ProductionCORE11.2.0.3.0ProductionTNSforLinux:Version11.2.0.3.0-ProductionNLSRTLVersion11.2.0.3.0-Production

Oraccle11g的对内存的管理用了两个新的参数:

sys@OCM>showparametermemoryNAMETYPEVALUE-----------------------------------------------------------------------------hi_shared_memory_addressinteger0memory_max_targetbiginteger1Gmemory_targetbiginteger0shared_memory_addressinteger0

会不会是参数memory_max_target在作怪呢,把它关了试试,我这里把它设为0,然后重启数据库。

sys@OCM>altersystemsetmemory_max_target=0scope=spfile;Systemaltered.sys@OCM>startupforce;ORACLEinstancestarted.TotalSystemGlobalArea943669248bytesFixedSize2234000bytesVariableSize541067632bytesDatabaseBuffers394264576bytesRedoBuffers6103040bytesDatabasemounted.Databaseopened.

再看共享内存:

[oracle@mydb~]$ipcs-a------SharedMemorySegments--------keyshmidownerpermsbytesnattchstatus0x0000000032768root6447220x0000000065537root6441638420x0000000098306root64428020x000000001802244oracle640409600x000000001835013oracle640409600x079918e81867782oracle64040960------SemaphoreArrays--------keysemidownerpermsnsems0x87a36da41736705oracle640154------MessageQueues--------keymsqidownerpermsused-bytesmessages

怎么回事,没变啊?

是不是参数没改对,继续校验参数:

sys@OCM>showparametermemNAMETYPEVALUE-----------------------------------------------------------------------------hi_shared_memory_addressinteger0memory_max_targetbiginteger904Mmemory_targetbiginteger0shared_memory_addressinteger0

果然没改过来,是不是命令alter system set memory_max_target=0 scope=spfile;没用啊,不能怎么设,但这命令本身设置重启也没报错。

来个狠一点的命令重置默认值:

sys@OCM>altersystemresetmemory_max_target;Systemaltered.sys@OCM>startupforce;ORACLEinstancestarted.TotalSystemGlobalArea680665088bytesFixedSize2231352bytesVariableSize276825032bytesDatabaseBuffers394264576bytesRedoBuffers7344128bytesDatabasemounted.Databaseopened.sys@OCM>showparametermemNAMETYPEVALUE-----------------------------------------------------------------------------hi_shared_memory_addressinteger0memory_max_targetbiginteger0memory_targetbiginteger0shared_memory_addressinteger0

这下可以了,参数memory_max_target终于等于0了。

我们再来看ORACLE共享内存:

[oracle@mydb~]$ipcs-a------SharedMemorySegments--------keyshmidownerpermsbytesnattchstatus0x0000000032768root6447220x0000000065537root6441638420x0000000098306root64428020x000000001933316oracle64012582912300x000000001966085oracle640671088640300x079918e81998854oracle640209715230------SemaphoreArrays--------keysemidownerpermsnsems0x87a36da41867777oracle640154------MessageQueues--------keymsqidownerpermsused-bytesmessages

可以了!已从4096字节变成671088640多字节了。,总结只要把参数memory_max_target设为0就能看到。这里不建议大家去这样改,只是为了解释一下这个现象。

上面那幅图留给童鞋们思考,不再解释了。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。