问题描述:
tablespace在oracle中是怎么定义的?
解析:
CREATE TABLESPACE
Name
CREATE TABLESPACE -- 定义一个新的表空间
Synopsis
CREATE TABLESPACE tablespacename [ OWNER username ] LOCATION 'directory'
描述
CREATE TABLESPACE 注册一个新的集群范围内的表空间。 表空间的名字必须在该数据库集群中的任何现有表空间中唯一。
一个表空间允许超级用户在文件系统中定义一个可选的位置,这个位置可以存放代表数据库对象的数据文件(比如表和索引)。
一个用户,如果有合适的权限,就可以给 CREATE DATABASE, CREATE TABLE,CREATE INDEX 或者 ADD CONSTRAINT 传递 tablespacename,这样就让使用这些对象的数据文件存储在指定的表空间里。
参数
tablespacename
要创建的表空间的名字。这个名字不能以 pg_ 开头,因为这些名字是保留给系统表空间使用的。
username
将拥有这个表空间的用户名。如果省略,缺省为执行此命令的用户名。 只有超级用户可以创建表空间,但是他们可以把表空间的所有权赋予非超级用户。
directory
用于表空间的目录。目录必须是空的,并且由 PostgreSQL 系统用户所有。 目录必须用一个绝对路径声明。
注意
只有在那些支持符号连接的系统上才支持表空间。
例子
在 /data/dbs 创建一个表空间 dbspace:
CREATE TABLESPACE dbspace LOCATION '/data/dbs'
在 /data/indexes 创建一个表空间 indexspace,由用户 genevieve 所有:
CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes'
兼容性
CREATE TABLESPACE 是 PostgreSQL 的扩展。
oracle创建表空间有多种方法,如下:
一、方法1:
代码创建,如下:
SQL>edi
已写入 file afiedt.buf
1 create tablespace ts1
2 datafile 'F:\oracle\product\10.2.0\oradata\orcl\ts1.dbf' size 100M
3 autoextend on next 1M maxsize 1000M
4* extent management local
SQL>/
表空间已创建。
二、方法2
用sqlplus,如下:
sqlplus / as sysdba
SQL>create tablespace tbsname datafile '文件路径及文件名' size 500m
三、方法3
通过脚本创建,如下:
Create tablespace StartDB
datafile 'e:\database\oracle\StartDB.dbf'
size 32m
autoextend on
next 32m maxsize 1024m
extent management local。
表空间是数据库中最大的逻辑存储结构,为数据库提供使用空间,其对应物理结构是数据文件,一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。表空间所包含的数据文件的大小,也就决定了表空间的大小,所以,表空间也是逻辑结构连接到物理结构的一个纽带;
create tablespace test datafile 'D:\test.ora' size 1000m这里的test为表空间名称,路径自己来命名;
oracle创建一个数据库需要以下三个步骤 ;
创建两个数据库的文件;
创建用户与上面创建的文件形成映射关系;
给用户添加权限。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)