Chinaunix首页 | 论坛 | 博客
  • 博客访问: 561461
  • 博文数量: 49
  • 博客积分: 8051
  • 博客等级: 中将
  • 技术积分: 1846
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-27 12:05
文章分类

全部博文(49)

文章存档

2011年(1)

2010年(4)

2009年(18)

2008年(26)

我的朋友

分类: Oracle

2008-11-01 21:03:28

今天在研究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:在新的数据库中创建字典管理的表空间(system为DICTIONARY时)
 
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.
 
可以创建成功。这样问题就清楚了。
 
 
总结:
1:oracle9i中,如果system表空间是字典管理的话,那么可以在这个数据库中创建local管理的表空间,也可以创建字典管理的表空间。
 
2:如果system是local管理的,那么只能创建local管理的表空间.这样情况下不能创建DMT,但是可以通过 transport imp DMT 的表空间,只是这样的表空间只能 read only, 而不能 read  write 。
阅读(1363) | 评论(0) | 转发(0) |
0

上一篇:Oracle 常用网址

下一篇:EBS 11i问题汇总

给主人留下些什么吧!~~