My box is RHEL 6.2, and file system BLOCK SIZE is 1024.
# tune2fs -l /dev/sda1
...
Block size: 1024
...
My Oracle is 11g, and database block size is 8192.
SQL> show parameters db_block_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
I create a tablespace, set block size 16K.
CREATE BIGFILE TABLESPACE "C_IDX" DATAFILE '/u01/oradata/weixin/c_idx1.dbf'
SIZE 4096M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT
MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO blocksize 16K;
then i got error ora-29339.
ORA-29339: tablespace block size 16384 does not match configured block sizes
It seems the reason is DEFAULT 16K buffer cache
is 0.
SQL> select component, current_size from v$sga_dynamic_components;
COMPONENT CURRENT_SIZE
shared pool 402653184
large pool 16777216
java pool 16777216
streams pool 16777216
DEFAULT buffer cache 1308622848
KEEP buffer cache 0
RECYCLE buffer cache 0
DEFAULT 2K buffer cache 0
DEFAULT 4K buffer cache 0
DEFAULT 8K buffer cache 0
DEFAULT 16K buffer cache 0
DEFAULT 32K buffer cache 0
Shared IO Pool 0
ASM Buffer Cache 0
Now the problem is how large should i set it, or according to what i set the value?
SQL> alter system set db_16k_cache_size= ?
Thanks.