ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 9i创建非标准BLOCK_SIZE数据库(二)

9i创建非标准BLOCK_SIZE数据库(二)

原创 Linux操作系统 作者:yangtingkun 时间:2009-05-21 22:33:58 0 删除 编辑

很早之前看到Tom提到,可以创建一个非标准的BLOCK_SIZE的数据库,也就是说数据库的DB_BLOCK_SIZE不在2K4K8K16K32K之中。

一直没有计划测试,今天正好有环境,简单测试了一下。

这一篇介绍非标准数据块的限制。

9i创建非标准BLOCK_SIZE数据库(一):http://yangtingkun.itpub.net/post/468/484776

 

 

上一篇建立了一个DB_BLOCK_SIZE10K的数据库,其实Oracle并不要求数据块的大小一定是2K的整数倍,只要数据块大小是512的整数倍就可以了,当然还要满足大于2K,小于32K的条件,下面这个例子在Windows环境中建立一个DB_BLOCK_SIZE2560的数据库。

初始化参数为:

db_name=test9
db_cache_size=100m
log_buffer=2048000
shared_pool_size=80m
large_pool_size=8m
java_pool_size=8m
pga_aggregate_target=64m
undo_management=auto
control_files=e:\oracle\oradata\test9\control01.dbf
background_dump_dest=e:\oracle\admin\test9\bdump
user_dump_dest=e:\oracle\admin\test9\udump
core_dump_dest=e:\oracle\admin\test9\cdump
db_block_size=2560
compatible=9.2.0.1.0

数据库建立过程:

E:\>oradim -new -sid test9

E:\>sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on 星期三 5 20 22:13:38 2009

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

已连接到空闲例程。

SQL> startup nomount pfile=inittest9.ora
ORACLE
例程已经启动。

Total System Global Area  229072608 bytes
Fixed Size                   454368 bytes
Variable Size             117440512 bytes
Database Buffers          109051904 bytes
Redo Buffers                2125824 bytes
SQL> CREATE DATABASE test9
  2  DATAFILE 'e:\oracle\oradata\test9\system01.dbf' SIZE 300m EXTENT MANAGEMENT LOCAL
  3  DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'e:\oracle\oradata\test9\temp01.dbf' SIZE 100m
  4  UNDO TABLESPACE "UNDOTBS1" DATAFILE 'e:\oracle\oradata\test9\undotbs01.dbf' SIZE 200m
  5  CHARACTER SET ZHS16GBK
  6  NATIONAL CHARACTER SET AL16UTF16
  7  LOGFILE GROUP 1 ('e:\oracle\oradata\test9\redo01.log') SIZE 50M,
  8  GROUP 2 ('e:\oracle\oradata\test9\redo02.log') SIZE 50M,
  9  GROUP 3 ('e:\oracle\oradata\test9\redo03.log') SIZE 50M;

数据库已创建。

SQL> show parameter db_block_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     2560

需要注意,在10.2中,已经无法创建非标准块的数据库了,CREATE DATABASE语句会报错:

[oracle@bjtest ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期三 5 20 23:58:14 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> startup nomount pfile=inittest102.ora
ORACLE instance started.

Total System Global Area  851443712 bytes
Fixed Size                  2076496 bytes
Variable Size             222298288 bytes
Database Buffers          620756992 bytes
Redo Buffers                6311936 bytes
SQL> create database;
create database
*
ERROR at line 1:
ORA-25157: Specified block size 5120 is not valid


SQL> host
[oracle@bjtest ~]$ vi inittest102.ora

db_name=test102
sga_target=812m
pga_aggregate_target=300m
control_files=/data/oradata/test102/control01.ctl
undo_management = auto
db_block_size=10240
~
"inittest102.ora" 6L, 151C written
[oracle@bjtest ~]$ exit
exit

SQL> shutdown immediate
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup nomount pfile=inittest102.ora
ORACLE instance started.

Total System Global Area  851443712 bytes
Fixed Size                  2076496 bytes
Variable Size             222298288 bytes
Database Buffers          620756992 bytes
Redo Buffers                6311936 bytes
SQL> create database;
create database
*
ERROR at line 1:
ORA-25157: Specified block size 10240 is not valid

也就是说建立非标准的块的数据库要求兼容性必须大于9.2,且数据库10.2已经不支持这个特性,由于手头没有环境,没有测试10.1版本的情况,估计Oracle认为实在没有大多的意义,因此在10g中禁止了这个功能。

 

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

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10467738