Operating System - HP-UX
1825795 Members
2317 Online
109687 Solutions
New Discussion

SGA limit on Oracle 8i 32 bit running on 11.11

 
Vic S. Kelan
Regular Advisor

SGA limit on Oracle 8i 32 bit running on 11.11

Hi,

I freed up some space that was assigned to dbc_max_pct after reducing it from 50% ( yup that high). The intention was to throw in some of the freed RAM to oracle SGA.

I ran into a problem in which I believe the reason is a limitation in Oracle 8i 32 bits. We currently have 7 databases running on this box with 24GB memory. In total the SGA for all DB is 1.950GB.

When we tried increasing the SGA any oracle DB that is started once we cross a total 2GB SGA would not start and come up with the error:

ORA-27102: out of memory
HP-UX Error: 12: Not enough space


We reverted to the default SGA settings and are OK. My question, is it really an oracle 8i 32 bit limitation or is there something that can be changed in the kernel to accommodate this?

Some current kernel settings:
shmmax 1073741824
maxdsiz 1073741824
maxdsiz_64bit 2147483648

Current memory:
Phys Mem: 23.9gb
Buf Cache: 8.36gb Free Mem: 7.11gb
Thanks
4 REPLIES 4
A. Clay Stephenson
Acclaimed Contributor

Re: SGA limit on Oracle 8i 32 bit running on 11.11

The problem is that all the shared memory in 32-bit land is drawn from a common global pool and that the processes share a common 4GB Virtual Address Space. If your are running 64-bit 11.11 then there is a way for 32-bit processes to break this barrier - Memeory Windows. The idea is that each group of related processes (e.g. an Oracle instance and its clients) gets a private 4GB VAS. Go to docs.hp.com and do a search on "Memory Windows".
If it ain't broke, I can fix that.
Steven E. Protter
Exalted Contributor

Re: SGA limit on Oracle 8i 32 bit running on 11.11

Shalom,

There is no reason why you can't convert to 64 bit Oracle if the OS is 64 bits.

There is a data conversion that will have to be run, which is painstaking and tedious.

By reducing the max_dbc_pct to a figure lower and clsoer to min_dbc_pct you are at least freeing the memory you were using to double buffer oracle.

As noted, you are at the limits of the 32 bit db, but I don't know why you are letting that limit you, unless the application that uses the data won't tolerate a 64 bit db and software.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Vic S. Kelan
Regular Advisor

Re: SGA limit on Oracle 8i 32 bit running on 11.11

Thanks for the answers, while I do more research on memory windows I have a quick question Clay, will the window "cage" all the memory requirements of the particular instance of oracle to 4GB max or just the SGA? What is considered as "shared memory" for oracle, just the SGA?

"Memory Windows helps alleviate the 1.75 gigabytes limitation on system
wide shared memory for 32-bit applications by allowing cooperating
applications to configure their own 1 gigabyte window of shared
resources."


SEP, I am kinda stuck with the 32bit thing and I tell ya I wish i could get it resolved that way....
A. Clay Stephenson
Acclaimed Contributor

Re: SGA limit on Oracle 8i 32 bit running on 11.11

You question is complicated because "shared" encompasses many things (shared memory segment, shared libraries, shared text) but for our purposes, it really applies to the SGA which is implemented as shared memory -- meaning data space which is accessible by multiple processes. Using memory windows allows 32-bit Oracle on your box to do 2 things: 1) You can increase shmmax well beyond your present 1GB to 1.75GB so that an individual SGA can now be larger 2) The size of an SGA in another memory window does not limit the size of an SGA in this memory window -- so that in your case where you have multiple instances -- they don't interfere with one another.

If you must fit within the limits of 32-bit land for whatever reason then memory windows are about as good as it gets; however, you must be running a 64-bit version of HP-UX eventhough your code is 32-bit.
If it ain't broke, I can fix that.