如何在 Oracle 11g 中创建表空间?

30 oracle

我对 Oracle 不太精明,我一直在尝试创建一个 TABLESPACE,它不断给我一个无效文件名的错误消息。以下是我使用的语法:

SQL> create Tablespace HRMT
2 datafile
3 size
4 ;
size
*
ERROR at line 3:
ORA-02236: invalid file name
Run Code Online (Sandbox Code Playgroud)

我的书和我去过的所有网站都建议我为 DATAFILE 指定文件路径,当我指定路径时,我收到另一条错误消息。

SQL> create tablespace vania
2 datafile 'home/oracle/hait/'
3 size 10M
4 ;
create tablespace vania
*
ERROR at line 1:
ORA-01119: error in creating database file 'home/oracle/hait/'
ORA-27040: file create error, unable to create file
Linux Error: 2: No such file or directory
Run Code Online (Sandbox Code Playgroud)

在创建 TABLESPACE 之前,是否需要先创建数据文件?数据库中是否有我可以使用的预先存在的数据文件?创建表空间和/或数据文件的正确语法是什么?如何以及在何处创建 .dbf 文件来创建表空间?

Lei*_*fel 28

您的问题的答案可以在SQL 语言参考中找到(摘录如下)。

创建基本表空间:示例

此语句使用一个数据文件创建一个名为 tbs_01 的表空间:

CREATE TABLESPACE tbs_01 DATAFILE 'tbs_f2.dbf' SIZE 40M ONLINE;

听起来您是 Oracle 数据库的新手。Oracle 在http://docs.oracle.com/en/database 上提供了大量文档。具体来说,我建议阅读他们对数据库的出色介绍,称为概念指南


Gai*_*ius 9

显然,如果你想要一个数据文件,你必须给它一个名字:

SQL> create tablespace vania
2 datafile '/home/oracle/hait/vania01.dbf'
3 size 10M
4 ;
Run Code Online (Sandbox Code Playgroud)

如果你做一个非常简单的搜索,就会有很多这样的例子


Uwe*_*sse 8

对于此类非常基本的问题,例如“如何在 Oracle 中创建表空间?” 我强烈推荐非常好的在线文档

在特定情况下,您可以从那里获得 Oracle® 数据库管理员指南 11g 第 2 版 (11.2) -创建表空间


小智 8

CREATE TABLESPACE <tablespace_name>
  DATAFILE 'datafile_name.dbf'
  SIZE 20M AUTOEXTEND ON;
Run Code Online (Sandbox Code Playgroud)

其中 20M 是数据文件的大小。AutoExtend On => 大小会随着数据文件的填满而自动扩展。


小智 5

确保您的数据文件夹存在。在 UNIX 上执行以下操作:

ls /home/oracle/hait  #if you get an error here, it means you need to create the folder first

mkdir -p /home/oracle/hait
Run Code Online (Sandbox Code Playgroud)

最后,如果您在 Oracle 11g 中,表空间管理纯粹是本地的,您可以执行以下操作:

create tablespace vania datafile '/home/oracle/hait/vania01.dbf' size 10M;
Run Code Online (Sandbox Code Playgroud)

这在 Oracle 7 或 8i 中不起作用;您必须明确指定将如何管理您的范围。