(2010-06-07)oracle中DMT与LMT表空间管理的一点研究

今天在研究HWM时候要研究本地管理与字典管理表空间不同时候,发现了一个问题,要创建一个字典管理的表空间时候,报错!具体请看下述!

 

1:创建一个字典管理的表空间:

 

SQL>

create tablespace exitgogo datafile '/free/oracle/oradata/orcl/exitgogodb.dbf' size 50m

2  extent management dictionary;

 

create tablespace exitgogo datafile '/free/oracle/oradata/orcl/exitgogodb.dbf' size 50m

*ERROR at line 1:

ORA-12913: Cannot create dictionary managed tablespace

 

2:查看系统表空间属性:

SQL> select TABLESPACE_NAME,EXTENT_MANAGEMENT from dba_tablespaces;

 

TABLESPACE_NAME                EXTENT_MAN

------------------------------ ----------

SYSTEM                         LOCAL

UNDOTBS1                       LOCAL

TEMP                           LOCAL

CWMLITE                        LOCAL

DRSYS                          LOCAL

EXAMPLE                        LOCAL

INDX                           LOCAL

ODM                            LOCAL

TOOLS                          LOCAL

USERS                          LOCAL

XDB                            LOCAL

 

TABLESPACE_NAME                EXTENT_MAN

------------------------------ ----------

HWM                            LOCAL

 

系统表空间是本地管理的。看来如果system是本地管理表空间的话,就不能在这个数据库中创建字典管理的表空间。

 

3:创建一个字典管理的system表空间数据库:

 

用如下脚本创建:

CREATE DATABASE $db_name

LOGFILE

GROUP 1 '$path_oradata/redo01.log'  SIZE 50M,

GROUP 2 '$path_oradata/redo02.log'  SIZE 50M,

GROUP 3 '$path_oradata/redo03.log'  SIZE 50M

MAXINSTANCES 8

MAXLOGHISTORY 100

MAXLOGMEMBERS 3

MAXLOGFILES 16

MAXDATAFILES 254

NOARCHIVELOG

CHARACTER SET AL32UTF8

NATIONAL CHARACTER SET AL16UTF16

DATAFILE '$path_oradata/system01.dbf' SIZE 200M

AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED

UNDO TABLESPACE UNDOTBS1

DATAFILE '$path_oradata/undotbs01.dbf' SIZE 200M

DEFAULT TEMPORARY TABLESPACE TEMP

TEMPFILE '$path_oradata/temp01.dbf' SIZE 100M;

 

以上脚本中,没有指定system表空间的管理方式,先创建再说!

 

4:创建数据库完毕,查看system表空间属性:

 

[oracle@localhost createDB]$ sqlplus "/as sysdba"

 

SQL*Plus: Release 9.2.0.1.0 - Production on Mon Oct 23 16:55:57 2006

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

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

SQL> select TABLESPACE_NAME,EXTENT_MANAGEMENT from dba_tablespaces;

TABLESPACE_NAME                EXTENT_MAN

------------------------------ ----------

SYSTEM                         DICTIONARY

UNDOTBS1                       LOCAL

TEMP                           LOCAL

USERS                          LOCAL

TOOLS                          LOCAL

INDX                           LOCAL

GAOJF                          LOCAL

 

可以看到,如果没有指定上面脚本中system表空间创建属性的话,默认system表空间为DICTIONARY管理方式。

 

5:在新的数据库中创建字典管理的表空间(systemDICTIONARY时)

 

SQL>

create tablespace exitgogo datafile '/free/oracle/oradata/orcl/exitgogodb.dbf' size 50m

  2  extent management dictionary;

 

Tablespace created.

 

SQL> select TABLESPACE_NAME,EXTENT_MANAGEMENT from dba_tablespaces;

 

TABLESPACE_NAME                EXTENT_MAN

------------------------------ ----------

SYSTEM                         DICTIONARY

UNDOTBS1                       LOCAL

TEMP                           LOCAL

USERS                          LOCAL

TOOLS                          LOCAL

INDX                           LOCAL

GAOJF                          LOCAL

EXITGOGO                       DICTIONARY

 

8 rows selected.

 

可以创建成功。这样问题就清楚了。

 

 

总结:

1oracle9i中,如果system表空间是字典管理的话,那么可以在这个数据库中创建local管理的表空间,也可以创建字典管理的表空间。

 

2:如果systemlocal管理的,那么只能创建local管理的表空间.这样情况下不能创建DMT,但是可以通过 transport imp DMT 的表空间,只是这样的表空间只能 read only 而不能 read  write

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值