Friday, December 27, 2013

PDBs gone wild in the shared pool ... make me grumpy

With 12c Oracle allows you to define container databases and pluggable databases.  A pluggable database lives within / runs inside a container.  You define Oracle memory allocations / sizes at the container level ( for shared pool / buffer cache etc ) and PDBs live with the definitions that are in effect for the container.

You are not currently allowed to carve out "dedicated" chunks of these critical oracle memory allocations for each PDB ( I can see that changing eventually perhaps ).  So everyone is supposed to play nicely in their usage of these overall shared resources right?

Easy enough to demonstrate that one badly behaved PDB can grab way more than a fair share of resources.  ( So download my complete Hotsos 2014 presentation maybe ? ).

Here is a quick peek at how it can look for the shared pool:


  1. There is sooooo much that can go wrong with Oracle's implementation of pdbs... I am scared of the consequences in the next few years.
    MSSQL has done it since the start and it's STILL not sorted out. But of course the very intelligent folks at Oracle sorted it all out before it was even thought of. And I am henceforth to be called Santa Claus...

  2. But still, Oracle is able to manage actions like FLUSH memory areas local to a PDB.
    So, restraining memory usage for a PDB may not be so far.