Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.server -> Re: 2GB limit of memory for Oracle on WIndows 32 bit

Re: 2GB limit of memory for Oracle on WIndows 32 bit

From: EdStevens <>
Date: Thu, 28 Jun 2007 05:31:21 -0700
Message-ID: <>

On Jun 28, 3:42 am, wrote:
> On Jun 27, 12:01 pm, BD <> wrote:
> > On Jun 27, 8:44 am, wrote:
> > > I am on Windows 2000 server and usng Oracle I know 32 bit
> > > Oracle has limit of 2GB memory. I have 5 Oracle database instances, so
> > > I see 5 oracle.exe in task manager. I am assuming each oracle.exe can
> > > access up to 2GB memory, so up to 10GB memory can be used by Oracle on
> > > the server.
> > > Thanks a lot.
> > No, not exactly. You have 2GB of memory for *all* of the Oracle
> > requirements. It's gross.
> > 3 ways of dealing with that limitation:
> > 1: the /3GB switch in boot.ini: allows for 3GB to be made available to
> > programs, with the kernel taking 1GB (could be repercussions there
> > too)
> > 2: the /PAE switch in boot.ini: allows for use of upper memory
> > (anything above 4GB). Oracle needs to be configured to use this
> > memory, and this memory can only be used for the buffer cache. Shared
> > Pool, PGA, all the rest needs to sit in 'base' memory no matter what.
> > The /3GB and /PAE switches can be used together, but if they are, you
> > will never see more than 16GB on the box, even if there's 64GB of
> > physical memory installed. Just the way it works.
> > 3: Use 64-Bit windows.
> > BD
> When /3GB switch is turned on, will all oracle instances (5 in my
> example) still have access only to 3GB memory combined or each
> instance will have limit of 3GB memory. Various metalink articels say
> this limit to be per instance so I am confused.

It's a hard OS limit. It is easily reached with one oversize SGA and a small handful of oversize PGAs. I've seen it reached with as few as 4 connections on a server running a single database.

Your Windows is a 32-bit OS. As such it (the OS) can only address 4g of memory without resorting to smoke and mirrors. By default, Windows will reserve 50% of the physical memory (up to the 4g limit) for itself, which means that with 4g or more installed, Windows will reserve 2g for itself, leaving 2g for *ALL* other processes. the /3GB switch will tell windows to reserve only 1gb for itself and release 3gb for *ALL* other processes. These are hard OS limits.

The PAE switch allows Windows to start using the smoke and mirrors to reach memory beyond 4gb (up to 16gb), but to use this memory, the app still has to cooperate in ways that it sees fit. Oracle sees fit to use it for buffer cache only. Everything else still has to fit into whatever memory the OS allocated to Oracle out of the base 2 or 3 gb.

Search MetaLink for ORA-4030 and "Windows memory". You'll get several good articles which explain all this in excruciating detail. Received on Thu Jun 28 2007 - 07:31:21 CDT

Original text of this message