|
Category :
Database
Resources -> Database Administration -> Troubleshooting & Solutions
DB Version
:
Oracle 8i /
Oracle 9i
OS Details :
Sun Solaris9
Encountered this error
before ?
ORA-04031: unable to allocate
16084 bytes of shared memory ("largepool","unknown object","large pool
hea","PX msg po")
The above error is usually raised
by parallel query processes when they cannot find adequate space for
message pool allocations in the large pool.
Troubleshooting tips:
(1) Guesstimate the large pool memory required for the Parallel query
message pool allocations by doing this:
-- This should return 4096 if parallel_automatic_tuning is TRUE
SQL> show parameter parallel_execution_message_size
-- Make sure your instance wasn't
restarted recently
SQL> SELECT statistic,value FROM V$PX_PROCESS_SYSSTAT WHERE
STATISTIC LIKE 'Buffers%';
Look the the value returned for the statistic Buffers HWM. This gives
the maximum number of concurrently allocated message buffers. The
(Buffers HWM value * parallel_execution_message_size) should give you
an approximate (its only an approximation and not the actual value)
idea on how much large pool memory might be needed just for the
message pool allocations. Use this as part of your approximation for
the large pool allocations.
(2) Since the memory for the parallel query message pool's being
allocated within the large pool as the error message suggests, your
instance might have the parallel_automatic_tuning parameter set to
true. If it is then make sure the parallel_max_servers parameter is
not set manually but instead allow oracle to determine the default
value.
(3) You can maybe try and reduce the number of parallel processes
allocated to the table creation process by reducing the value for the
"parallel" degree settings within the CREATE TABLE clause.
|