ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【TABLESPACE】创建非标准块大小(标准块8K)表空间

【TABLESPACE】创建非标准块大小(标准块8K)表空间

Linux操作系统 作者:yczloveyy 时间:2015-12-21 23:59:55 0 删除 编辑
默认情况下创建的表空间使用的数据块大小是8K,数据库默认的数据块大小由db_block_size参数决定。如果我们想要创建的表空间超出这个藩篱,首先需要调整数据库的参数db_nk_cache_size。以创建数据库块大小为16K的表空间为例,展示一下这个调整过程。

1.查看当前的数据库大小
sys@ora10g> show parameter db_block_size

NAME                  TYPE                 VALUE
--------------------- -------------------- -------------------
db_block_size         integer              8192

2.查看参数db_16k_cache_size系统默认值
sys@ora10g> show parameter db_16k_cache_size

NAME                  TYPE                 VALUE
--------------------- -------------------- -------------------
db_16k_cache_size     big integer          0

该参数默认值为0,表示未启用。

3.创建数据库高速缓存区
sys@ora10g> alter system set db_16k_cache_size=1M scope=both;

System altered.

sys@ora10g> show parameter db_16k_cache_size

NAME                 TYPE                 VALUE
-------------------- -------------------- --------------------
db_16k_cache_size    big integer          32M

即使修改时指定的是1M,修改之后系统会自动给出一个最小的32M大小。

4.添加数据库块为16K的非标准块表空间
在前期准备工作完成的情况下,我们便可以使用“blocksize 16k”参数完成表空间的创建。
sys@ora10g> create tablespace DATA01 datafile '/u01/app/oracle/oradata/ora10g/DATA01_01.dbf' size 256M uniform. size 4M blocksize 16K;

sys@ora10g> select dbms_metadata.get_ddl('TABLESPACE','DATA01') from dual;

DBMS_METADATA.GET_DDL('TABLESPACE','DATA01')
---------------------------------------------------------------------

  CREATE TABLESPACE "DATA01" DATAFILE
  '/u01/app/oracle/oradata/ora10g/DATA01_01.dbf' SIZE 10485760
  LOGGING ONLINE PERMANENT BLOCKSIZE 16384
  EXTENT MANAGEMENT LOCAL UNIFORM. SIZE 4194304 SEGMENT SPACE MANAGEMENT AUTO

5.未对db_16k_cache_size参数进行设置的ORA-29339报错信息
如果在创建表空间之前没有对db_16k_cache_size参数进行调整,将会收到如下ORA-29339报错。
sys@ora10g> create tablespace DATA01 datafile '/u01/app/oracle/oradata/ora10g/DATA01_01.dbf' size 256M uniform. size 4M blocksize 16K;
create tablespace DATA01 datafile '/u01/app/oracle/oradata/ora10g/DATA01_01.dbf' size 256M uniform. size 4M blocksize 16K
*
ERROR at line 1:
ORA-29339: tablespace block size 16384 does not match configured block sizes

6.小结
本着特殊问题特殊处理的原则,创建非系统默认的表空间需要事先做一些微小的调整。
另外注意,当同一套数据库系统中存在数据块大小不同的表空间的时候,维护上需要更多的关照。充分评估,不要增加不必要的负担。

Good luck.

secooler
10.07.16

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30338315/viewspace-1876502/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-07-09

  • 博文量
    29
  • 访问量
    21207