> Hi!
> I would be most grateful if anyone could explain in detail what's
> going on here. We have a warning message in the alert log saying:
> WARNING: EINVAL creating segment of size 0x0000000101400000
> fix shm parameters in /etc/system or equivalent
> and this hexadecimal value I find to be 4315938816 in decimal. Now the
> question is why oracle tries to allocate this value because we have
> set a smaller value in the spfile:
> oracle@S0242169# grep sga_max_size /SSW/oracle/product/9.2.0.6.0/dbs/
> spfiledw
> *.sga_max_size=4294967296
> which is the same value as in /etc/system
> oracle@S0242169# grep shmmax /etc/system
> set shmsys:shminfo_shmmax=4294967296
> (and the system is indeed started with this value:
> oracle@S0242169# sysdef | grep -i shmmax
> 4294967296 max shared memory segment size (SHMMAX))
> Despite the above the instance ends up with a larger memory allocation
> than sga_max_size and shmmax:
> oracle@S0242169# echo "show parameter sga_max_size" | sqlplus -s '/ as
> sysdba'
> NAME TYPE
> VALUE
> ------------------------------------ -----------
> ----------------------------
> sga_max_size big integer 4296515696
> Why is that?
> Can it have something to do with oracle rounding up it's memory
> allocation to "a page boundary" as stated in the below qoute:
> >Fromhttp://www.dba-oracle.com/t_shared_memory_ram_unix_errors.htm
> 3) The size of the shared memory segment requested is invalid. In
> this
> case, EINVAL is returned by the system. This should be very rare
> - however,
> it is possible. This can occur if SHMMAX is not a mulitple of
> page
> size and Oracle is trying a multi-segment model. Remember that
> Oracle
> rounds its calculation of SHMMAX to a page boundary, so it may
> have
> rounded it up past the real SHMMAX! (Whether this is a bug is
> debatable).
> OS: Solaris 9 9/04 s9s_u7wos_09 SPARC
> Oracle server: Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit
> Production
> Regards Christian Eriksson
On May 14, 5:59 pm, christianeriks
@vfemail.net wrote:
> Hi!
> I would be most grateful if anyone could explain in detail what's
> going on here. We have a warning message in the alert log saying:
> WARNING: EINVAL creating segment of size 0x0000000101400000
> fix shm parameters in /etc/system or equivalent
> and this hexadecimal value I find to be 4315938816 in decimal. Now the
> question is why oracle tries to allocate this value because we have
> set a smaller value in the spfile:
> oracle@S0242169# grep sga_max_size /SSW/oracle/product/9.2.0.6.0/dbs/
> spfiledw
> *.sga_max_size=4294967296
> which is the same value as in /etc/system
> oracle@S0242169# grep shmmax /etc/system
> set shmsys:shminfo_shmmax=4294967296
> (and the system is indeed started with this value:
> oracle@S0242169# sysdef | grep -i shmmax
> 4294967296 max shared memory segment size (SHMMAX))
> Despite the above the instance ends up with a larger memory allocation
> than sga_max_size and shmmax:
> oracle@S0242169# echo "show parameter sga_max_size" | sqlplus -s '/ as
> sysdba'
> NAME TYPE
> VALUE
> ------------------------------------ -----------
> ----------------------------
> sga_max_size big integer 4296515696
> Why is that?
> Can it have something to do with oracle rounding up it's memory
> allocation to "a page boundary" as stated in the below qoute:
> >Fromhttp://www.dba-oracle.com/t_shared_memory_ram_unix_errors.htm
> 3) The size of the shared memory segment requested is invalid. In
> this
> case, EINVAL is returned by the system. This should be very rare
> - however,
> it is possible. This can occur if SHMMAX is not a mulitple of
> page
> size and Oracle is trying a multi-segment model. Remember that
> Oracle
> rounds its calculation of SHMMAX to a page boundary, so it may
> have
> rounded it up past the real SHMMAX! (Whether this is a bug is
> debatable).
> OS: Solaris 9 9/04 s9s_u7wos_09 SPARC
> Oracle server: Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit
> Production
> Regards Christian Eriksson
Is it possible that there is not enough memory on the server to
allocate the 4GB for SGA? What is the value for LOCK_SGA?
As for how Oracle allocates the shared memory I find Note:15566.1
explains it fairly well.
-----------------------------------------------Reply-----------------------------------------------
On Tue, 15 May 2007 18:51:32 -0700, Valentin Minzatu wrote:
> Is it possible that there is not enough memory on the server to allocate
> the 4GB for SGA? What is the value for LOCK_SGA?
Valentin, calm down, you're not making much sense. The parameter
for lockig SGA has nothing to do with allocation. Allocation errors
will simply give you "insufficient space on the device" or something
like that, while locking errors will be something completely different.
On top of that, physical memory doesn't have much to do with the
size of SGA, except performance. I have allocated 2GB SGA on a PC with
512MB of memory. It's virtual memory. Second, there are nice sites which
explain how to set shared memory in order to get things working.
Please, refrain from dispensing incorrect and nonsensical advice. You are
very active on this group in the last few days and some of the things you
said do not make sense. Calm down, smell the carbon dioxide and let the
day pass without an unsolicited bad advice.
--
http://www.mladen-gogala.com