We're setting up a new 11g data warehouse instance. The host machine (RHEL 5) has 32GB of real memory (2GB swap) and only 1GB is currently being used by system processes and ASM.

If we set the memory_target and memory_max_target parameters on the database to anything over 15G, we get an ORA-04030 error on startup ( out of process memory when trying to allocate 304 bytes (Heap0:KGL,kglob).

If we leave things at 15G, it starts up. I'm not exactly sure how to debug this. From the looks of things (using top), the memory is available. Top shows 25G free and we know 4G is used as cache, so that's available as well.

How can we figure out why this error occurs or why Oracle thinks it can't allocate more? Ideally, we want to use 30GB of RAM and allow automatic memory management to split between SGA and PGA (supposedly a neat new feature with 11g).