To begin, while I've worked with Oracle for many years, I'm far from a DBA. (and it'll take probably a few weeks before I can get one assigned to look at this.)

I've got an Oracle instance that is consuming way more ram then is set with the memory_target and memory_max_target parameters.

SQL> show parameter memory_target;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------
memory_target                        big integer 8000M

SQL> show parameter memory_max_target;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------
memory_max_target                    big integer 9024M

However Oracle is taking up about 11GB of ram at the moment.

AMM is turned on

SQL> show parameter pga_aggregate_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
pga_aggregate_target                 big integer 0

SQL> show parameter sga_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
sga_target                           big integer 0

But oracle is still being a memory hog

enter image description here

When I reduced memory_target and memory_max_target to the current values (down by 2GB each) the only thing that changed was the primary ORCL instance reduced it's memory footprint, but the RCAT instance took up the available freed ram.

The machine has been rebooted with no change in memory consumption.

I'm assuming RCAT here is the recovery catalog, but what would cause it to consume higher memory than is assigned via the memory target params?

Is there another area I should be looking at? (i.e. is memory for the recovery catalog instance controlled by another parameter?)

What additional information would be helpful in narrowing down the issue?

  • Windows 2012R2
  • 16GB assigned ram
  • Oracle 18C
  • Approx 130 sessions with very little activity (basically idle)

1 Answer 1


Those are 3 seperate instances.

You checked and listed the memory parameters from only 1 instance.

We do not know which instance that is, and we do not know anything about the other 2.

Each instance has its own memory parameters.

None of the instances use more memory than the value listed above.

I see no problem here.

  • so ALTER SYSTEM SET MEMORY_MAX_TARGET=XG SCOPE=SPFILE; is only going to affect whatever instance I'm connected to? I say that because the values I see in the RCAT instance match that of the ORCL instance. so I'm not sure how they got to be the same. I set MEMORY_MAX_TARGET to a new value a few weeks back, but pretty sure I was connected to ORCL Commented Jan 17, 2020 at 0:17
  • disregard above comment. Looks like RCAT was set as the default SID in this environment when using sqlplus! so all along my changes were to RCAT not ORCL! Commented Jan 17, 2020 at 0:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.