RE: rman Ora-4031 - how to flush large pool?

  • From: Tanel Poder <tanel.poder.003@xxxxxxx>
  • To: tim@xxxxxxxxx, dcowles@xxxxxxxxxx
  • Date: Wed, 16 Jul 2008 02:13:11 +0800

Hi,

Roughly what happens when you flush shared pool, is:

1) Oracle just walks through the shared pool LRU lists (recreatable chunks)
and frees them, unless they are pinned.
2) While freeing chunk it also checks whether an adjacent chunk in memory is
also free, if it is it will merge the adjacent free chunk and move the
resulting chunk to appropriate freelist list based on its size.

So, it would be better to say that flush shared pool coalesces adjacent free
space but doesn't go all the way to defragging by moving chunks around.

--
Regards,
Tanel Poder
http://blog.tanelpoder.com
 

> -----Original Message-----
> From: oracle-l-bounce@xxxxxxxxxxxxx 
> [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Tim Gorman
> Sent: Wednesday, July 16, 2008 00:06
> To: dcowles@xxxxxxxxxx
> Cc: oracle-l@xxxxxxxxxxxxx
> Subject: Re: rman Ora-4031 - how to flush large pool?
> 
> I'm sure that there is a way to tell, via querying some X$ 
> table or other, but my purely-speculative and uninformed 
> guess would be that "flush" simply means "deallocate 
> inactive" and does not include defragmenting as well, which 
> would involve relocating everything remaining to leave all 
> free space in a contiguous area.  Deallocating inactive data 
> structures is relatively painless, as I imagine very little 
> synchronization has to occur.

--
//www.freelists.org/webpage/oracle-l


Other related posts: