9i建立非標準BLOCK_SIZE資料庫(一)

yangtingkun發表於2009-05-20

很早之前看到Tom提到,可以建立一個非標準的BLOCK_SIZE的資料庫,也就是說資料庫的DB_BLOCK_SIZE不在2K4K8K16K32K之中。

一直沒有計劃測試,今天正好有環境,簡單測試了一下。

 

 

9.2環境中,建立一個DB_BLOCK_SIZE10K的資料庫:

[oracle@bjtest ~]$ mkdir -p /opt/oracle/admin/test9/bdump
[oracle@bjtest ~]$ mkdir /opt/oracle/admin/test9/udump
[oracle@bjtest ~]$ mkdir /opt/oracle/admin/test9/cdump
[oracle@bjtest ~]$ mkdir /data/oradata/test9
[oracle@bjtest ~]$ export ORACLE_SID=test9

手工編輯初始化引數:

[oracle@bjtest ~]$ vi inittest9.ora

db_name=test9
db_cache_size=256m
log_buffer=2048000
shared_pool_size=200m
large_pool_size=64m
java_pool_size=64m
pga_aggregate_target=128m
undo_management=auto
control_files=/data/oradata/test9/control01.dbf
background_dump_dest=/opt/oracle/admin/test9/bdump
user_dump_dest=/opt/oracle/admin/test9/udump
core_dump_dest=/opt/oracle/admin/test9/cdump
db_block_size=10240
compatible=9.2.0.1.0

注意DB_BLOCK_SIZE的大小是10K

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

SQL*Plus: Release 9.2.0.4.0 - Production on 星期四 5 21 00:52:38 2009

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

已連線到空閒例程。

SQL> startup nomount pfile=inittest9.ora
ORACLE
例程已經啟動。

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

資料庫已建立。

SQL> show parameter db_block_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     10240

最後執行catalog.sqlcatproc.sql,資料庫建立完成:

SQL> spo result.txt
SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql
SQL> spo off

簡單提一句,這種非標準BLOCK_SIZE的資料庫沒有什麼實際的意義,而且這種非標準塊的資料庫無法像其他資料庫遷移表空間,因為其他資料庫上沒有辦法設定DB_NK_BLOCK_SIZE的值,來載入這個資料庫的表空間。

要建立非標準塊的資料庫,必須設定COMPATIBLE,否則執行會報錯:

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

SQL*Plus: Release 9.2.0.4.0 - Production on 星期四 5 21 00:34:49 2009

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

已連線到空閒例程。

SQL> startup nomount pfile=inittest9.ora
ORACLE
例程已經啟動。

Total System Global Area  657246184 bytes
Fixed Size                   743400 bytes
Variable Size             385875968 bytes
Database Buffers          268435456 bytes
Redo Buffers                2191360 bytes
SQL> CREATE DATABASE test9
  2  MAXINSTANCES 1
  3  MAXLOGHISTORY 1
  4  MAXLOGFILES 5
  5  MAXLOGMEMBERS 3
  6  MAXDATAFILES 100
  7  DATAFILE '/data/oradata/test9/system01.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED
  8  EXTENT MANAGEMENT LOCAL
  9  DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/data/oradata/test9/temp01.dbf' SIZE 4096M REUSE AUTOEXTEND ON NEXT  640K MAXSIZE UNLIMITED
 10  UNDO TABLESPACE "UNDOTBS1" DATAFILE '/data/oradata/test9/undotbs01.dbf' SIZE 4096M REUSE AUTOEXTEND ON NEXT  5120K MAXSIZE UNLIMITED
 11  CHARACTER SET ZHS16GBK
 12  NATIONAL CHARACTER SET AL16UTF16
 13  LOGFILE GROUP 1 ('/data/oradata/test9/redo01.log') SIZE 512M,
 14  GROUP 2 ('/data/oradata/test9/redo02.log') SIZE 512M,
 15  GROUP 3 ('/data/oradata/test9/redo03.log') SIZE 512M;
CREATE DATABASE test9
*
ERROR
位於第 1 :
ORA-01092: ORACLE
例程終止。強行斷開連線

alert檔案中可以看到錯誤資訊:

Errors in file /opt/oracle/admin/test9/udump/test9_ora_26099.trc:
ORA-01501: CREATE DATABASE ??
ORA-00406: COMPATIBLE ????? 9.2.0.0.0 ???
Thu May 21 00:35:18 2009
Error 406 happened during db open, shutting down database
USER: terminating instance due to error 406
Instance terminated by USER, pid = 26099
ORA-1092 signalled during: CREATE DATABASE test9
MAXINSTANCES 1
MAXLOGHISTORY...

也就是說建立非標準的塊的資料庫要求相容性必須大於9.2

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-600606/,如需轉載,請註明出處,否則將追究法律責任。

相關文章