首页 >> 宝藏问答 >

问oracle 怎么创建表空间 创建表空间 SQL 完整教程

2026-11-10 10:05:41

答

核心结论:Oracle 创建表空间使用 CREATE TABLESPACE 语句,需要拥有 SYSDBA 或者 CREATE TABLESPACE 系统权限,表空间是 Oracle 数据库逻辑存储单元,所有表、索引数据最终都会存放在表空间对应的数据文件里面,生产环境一般会设置自动扩展,避免写满之后业务报错。

一、基础语法 普通永久表空间

CREATE TABLESPACE 表空间名

DATAFILE '数据文件完整路径'

SIZE 初始大小

AUTOEXTEND ON

NEXT 自动扩展增量

MAXSIZE 最大上限

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

示例

创建名为 TS_USER 的永久表空间,数据文件放在 /u01/oradata/orcl/ts_user01.dbf,初始 500M,每次自动扩展 100M,最大不超过 10G

CREATE TABLESPACE TS_USER

DATAFILE '/u01/oradata/orcl/ts_user01.dbf'

SIZE 500M

AUTOEXTEND ON

NEXT 100M

MAXSIZE 10G

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

二、带多个数据文件的表空间

大业务表空间可以一次性创建多个 dbf 数据文件,分散 IO 压力

CREATE TABLESPACE TS_BIG

DATAFILE

'/u01/oradata/orcl/ts_big01.dbf' SIZE 1G,

'/u01/oradata/orcl/ts_big02.dbf' SIZE 1G

AUTOEXTEND ON

NEXT 200M

MAXSIZE 20G

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

三、临时表空间创建语法

临时表空间专门存放排序、分组等临时数据,使用 CREATE TEMPORARY TABLESPACE

CREATE TEMPORARY TABLESPACE TEMP_USER

TEMPFILE '/u01/oradata/orcl/temp_user01.dbf'

SIZE 300M

AUTOEXTEND ON

NEXT 50M

MAXSIZE 5G

EXTENT MANAGEMENT LOCAL;

四、创建之后验证表空间

查询所有表空间

SELECT tablespace_name, status, contents FROM dba_tablespaces;

查询表空间对应数据文件

SELECT file_name, bytes, autoextensible, maxbytes

FROM dba_data_files

WHERE tablespace_name='TS_USER';

五、常用后续操作

1 给已有表空间追加数据文件

ALTER TABLESPACE TS_USER

ADD DATAFILE '/u01/oradata/orcl/ts_user02.dbf'

SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE 10G;

2 删除表空间

DROP TABLESPACE TS_USER INCLUDING CONTENTS AND DATAFILES;

语法要点说明

1 DATAFILE 后面的路径,Linux 和 Windows 写法不一样,Windows 示例:'D:\app\oradata\orcl\ts_user01.dbf'

2 AUTOEXTEND ON 就是开启自动扩展,生产推荐开启,NEXT 是每次扩容大小,MAXSIZE 限制最大,防止磁盘被占满

3 EXTENT MANAGEMENT LOCAL 本地区管理,现在 Oracle 默认推荐,老式字典管理已经淘汰

4 SEGMENT SPACE MANAGEMENT AUTO 自动段空间管理,提升空间利用率

【常见问题】

问题 1 oracle 怎么创建表空间 提示权限不足怎么办

回答:oracle 怎么创建表空间,报错权限不足说明当前登录用户没有 CREATE TABLESPACE 权限,需要用 sys 用户登录,给用户授权:GRANT CREATE TABLESPACE TO 用户名;

问题 2 oracle 怎么创建表空间 数据文件路径报错无法创建

回答:oracle 怎么创建表空间,大概率是目录不存在,或者 oracle 操作系统用户没有该目录读写权限,提前创建文件夹并且赋予 oracle 用户读写权限。

问题 3 oracle 怎么创建表空间 表空间和用户是什么关系

回答:oracle 怎么创建表空间,表空间是存储容器,创建用户之后可以指定该用户默认表空间,之后用户新建表默认就存储在这个表空间里面。

【免责申明】

本内容为 Oracle SQL 通用语法讲解,不同版本参数细节略有差异,生产环境创建表空间需要提前规划磁盘空间、IO 负载,建议结合业务容量评估,本内容不替代 DBA 生产实施方案。

 

相关阅读

最新文章