APPLIES TO:
Oracle Database - Enterprise Edition - Version 11.2.0.3 and later

GOAL:
This note helps in how to use multiple cache size for tablespaces with different block size i.e DB_nK_CACHE_SIZE

Upgrade Gather Stats or running any SQL fails with ORA-00379: no free buffers available in buffer pool DEFAULT for block size 16K or 32K errors

SQL> exec dbms_stats.gather_table_stats('CORECAS','LOS_APP_APPLICATIONS',estimate_percent=>100, cascade=>true);
BEGIN dbms_stats.gather_table_stats('CORECAS','LOS_APP_APPLICATIONS',estimate_percent=>100, cascade=>true); END;

*
ERROR at line 1:
ORA-00379: no free buffers available in buffer pool DEFAULT for block size 16K
ORA-06512: at "SYS.DBMS_STATS", line 23938
ORA-06512: at "SYS.DBMS_STATS", line 23989
ORA-06512: at line 1

SOLUTION:
There has been no memory allocated to 8K or 16K or 32K block buffers cache. Explicitly allocating memory to the non-default block buffers will resolve the ORA-00379: no free buffers available in buffer pool DEFAULT for block size 8K or 16K or 32K errors
To resolve the issue execute the following:
set DB_nK_CACHE_SIZE to a certain value and restart the instance ( Replace the n with the failing block size 8K or 16K or 32K as appropriate )

For example:
SQL> alter system set DB_16K_CACHE_SIZE=100M scope = spfile;
restart the instance

 

Recent Posts

Start typing and press Enter to search