Oracle创建表空间

Oracle创建表空间是数据库管理员经常要做的事情,在实际当中,一般独立的业务系统会有一个独立的用户进行独立开发管理,附带的会独立创建一个自己的表空间进行存储。

Oracle创建表空间可以通过OEM企业管理器、SQL命令两种方式进行创建,笔者这里采用SQL命令方式进行讲解,OEM方式读者可以自行登录OEM后台自行试验。


Oracle创建表空间语法结构如下:

create tablespace tab_name
datafile 'filename'
size n
[autoextend on next n1 maxsize m /of]
[permanent] 
[extent management local/dictionary];

语法解析:

create tablespace:创建表空间的关键字。

tab_name:创建后表空间的名字。

datafile指定数据文件的路径为filename。

size n:指定数据文件的大小。

[autoextend on next n1 maxsize m /of ]:表示表空间是否是自动扩展的,on 为自动扩展,of为不扩展,当自动扩展时,next n1表示自动扩展的大小,max size m 表示数据文件最大扩展到m大小。

[permanent] :表示创建的表空间的类型,permanent表示永久表空间,不填都是默认永久表空间。

[extent management local/dictionary]:表示表空间管理的方式,local表示本地的管理模式,dictionary表示数据字典管理模式,默认都是本地管理方式。


案例1、根据表空间创建语法,创建一个100M大小数据文件(student.dbf)的表空间student,代码如下:

create tablespace student
datafile 'E:\APP\ADMIN\ORADATA\ORCL\student.DBF'
size 100m
autoextend on next 10m maxsize 500m
permanent
extent management local;

案例解析:

创建一个student表空间,指定了数据文件为“E:\APP\ADMIN\ORADATA\ORCL\student.DBF”,表空间是自动扩展的,每次自动扩展大小为10M,最大扩展到500M,创建的是永久表空间,用来存储student用户的数据库对象和数据,管理模式为本地管理。

我们查看数据字典dba_data_files和dba_tablespaces对创建好后的student表空间进行查询,查询代码如下:

select t.TABLESPACE_NAME, --表空间名
       t.FILE_NAME, --文件名
       t.AUTOEXTENSIBLE, --是否自动扩展
       t.BYTES / 1024 / 1024, --表空间初始大小
       t.MAXBYTES / 1024 / 1024, --表空间最大扩展到多少
       b.CONTENTS, --表空间类型
       b.EXTENT_MANAGEMENT --表空间管理模式
  from dba_data_files t, dba_tablespaces b
 where t.TABLESPACE_NAME = b.TABLESPACE_NAME

Oracle创建表空间