I recently stumbled upon the following bug on a database that has been running for 7 months. Its always interesting when hitting bugs after several months of running the same process. It can be a challenge to explain why now and not before, but that’s the nature of bugs.
The exact error message:
ORA-04030: out of process memory when trying to allocate 16328 bytes (koh-kghu call ,pmucalm coll)
The resolution was simple and found in the following MOS Note 1325100.1
The context of the note is that when more than 4G of PGA is trying to be consumed by a process and the PGA is set higher than 4G. In my particular case 5G. The problem is the PGA, but running out of map entries on the OS. There is a default limit of 65536 per process. Increasing this limit in /proc/sys/vm/max_map_count should resolve the issue
The other workaround deals with changing hidden parameters which requires a bounce of the database. Of course, the hidden parameters shouldn’t be changed without the direction of Oracle Support, even though they provide the change in the note DBAs should always review their symptoms with Oracle Support to ensure that changing them is the correct course of action.