关于oracle db_block_size的修改

 db_block_size是oracle 数据库最小的存储单元,默认情况下大小为8K (取决于操作系统),正常来说我们在创建数据库的时候就指定了db_block_size的大小 ,但是在工作中,我们有可能有新的需求,比如在数据仓库中,我们想把ODS层的表空间设置为16K而APP层的表空间设置为8K;

create tablespace test datafile '/data/oracle/oradata/test/test01.dbf'
SIZE 30g
autoextend on
BLOCKSIZE 32k
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2m
SEGMENT SPACE MANAGEMENT AUTO

如果直接创建表空间指定blocksize参数大小 ,那么会报 ora-29339 tablespace block size 32768 does not match configuared block size

在oracle 官方文档 Oracle® DatabaseSQL language Reference  当中

Use the  BLOCKSIZE clause to specify a nonstandard block size for the tablespace. In
order to specify this clause, the  DB_CACHE_SIZE and at least one  DB_nK_CACHE_SIZE
parameter must be set, and the integer you specify in this clause must correspond with
the setting of one  DB_nK_CACHE_SIZE parameter setting.

也就是说你当你想设置 db_block_size为32K 的时候 要配置非标准数据块的数据缓冲区DB_32K_CACHE_SIZE的大小

alter system set db_32k_cache_size=32m;
这样子才能设置表空间db_block_size


你可能感兴趣的:(oracle,修改db_block_size,ora-29339,oracle)