Oracle中如何用命令创建表空间?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中如何用命令创建表空间?相关的知识,希望对你有一定的参考价值。

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;
参考技术A 创建表空间:
create tablespace DATATEST datafile 'D:\SERVER\DATABASE\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATATEST.dbf' size 100M autoextend ON next 10M maxsize 200M;

创建临时表空间:
create temporary tablespace DATATEST_TEMP tempfile 'D:\SERVER\DATABASE\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATATEST_TEMP.dbf' size 50M autoextend ON next 10M maxsize 100M;
小写内容均为固定写法
参考技术B 在sql窗口中输入create tablespace 表空间名 datafile '路径' size 大小 ;
如:create tablespace test datafile 'D:\test.ora' size 100m;
参考技术C create tablespace MY_TEMP1
datafile 'C:\oracle\tablespace\MY_TEMP1.def' size 500M
autoextend on next 100M maxsize unlimited logging
extent management local autoallocate
segment space management auto;
参考技术D create tablespace 空间名
不过得有权限才行

ORACLE-用户及表空间创建命令总结

博文说明【前言】:

    本文将通过个人口吻介绍记录用户及表空间创建相关命令,在目前时间点【2017年5月16号】下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容。



正文:


一:创建表空间

此空间用用于数据存储【存储表、function、存储过程等,即存储数据结构以及真实数据,使用实际物理存储区域】



示例1:创建表空间和表空间初始数据文件


create tablespace xxxx_db  

datafile  ‘/u2/oradb/datafile/dsdb/xxx_db01.dbf‘  size 1024M REUSE 

AUTOEXTEND ON     --自动增长

NEXT 500M MAXSIZE 20G --限制最大容量(单个数据文件一般在10G~25G之间,不要超过32G)


--增加第二个数据文件,在硬盘空间允许的情况下,可继续增加。

alter tablespace xxxx_db add datafile

‘/u2/oradb/datafile/dsdb/xxxx_db02.dbf‘ SIZE 1024M

AUTOEXTEND ON NEXT 500M MAXSIZE 20G;


命令解释:创建表空间:xxxx_db,数据文件物理存储路径为:/u2/oradb/datafile/dsdb/,数据文件初始大小为1G(1024M),当1G使用完毕之后,每个数据文件可自动扩展容量,每次扩展大小为500M,最大可扩展到20G。

注意:/u2/oradb/datafile/dsdb/为数据文件存储路径,物理路径可通过sql语句查询得出。

select file_id,

file_name,

round(bytes / (1024 * 1024), 0) total_space

FROM dba_data_files

ORDER BY tablespace_name;


二:创建临时表空间

此空间用于管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT及其他需要存储临时数据的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。

当操作完成后,系统会自动清理临时表空间中的临时对象,自动释放临时段。这里的释放只是标记为空闲、可以重用,其实实质占用的磁盘空间并没有真正释放。这也是临时表空间有时会不断增大的原因。


示例2:创建临时表空间(可选,非必要,如果没有创建专用的临时表空间,则创建用户时,使用系统默认临时表空间就行。)


create temporary tablespace  xxxx_temp_db  --初始大小:10G

TEMPFILE ‘/u2/oradb/datafile/dsdb/xxxx_temp_db01.dbf‘  SIZE 1000M REUSE 

AUTOEXTEND ON NEXT 200M MAXSIZE 10G; 


命令解释:创建临时表空间:xxxx_temp_db,数据文件物理存储路径为:/u2/oradb/datafile/dsdb/,数据文件初始大小为1000M,当1000M使用完毕之后,每个数据文件可自动扩展容量,每次扩展大小为200M,最大可扩展到10G。

注意:/u2/oradb/datafile/dsdb/为数据文件存储路径,物理路径可通过sql语句查询得出。

select file_id,

file_name,

round(bytes / (1024 * 1024), 0) total_space

FROM dba_data_files

ORDER BY tablespace_name;


三:创建用户


示例3:

1、创建用户

create user xxxx identified by "xxxx" default tablespace xxxx_db;


--如果有创建专用临时表空间,则使用以下第一个语句;没有则使用第二个语句:

alter user xxxx temporary tablespace  xxxx_temp_db; --可选


alter user xxxx temporary tablespace  TEMP1; 


2、给用户分配表空间权限

--分配无限的表空间限额

alter user xxxx quota unlimited  on xxxx_db;  


3、授权

grant connect,resource to xxxx;


--授权dba要看具体情况(可选)

grant dba to xxxx;



实际案例:


create tablespace factorytest_db  datafile  ‘+DATA/orcl/datafile/factorytest.dbf‘  size 1024M REUSE AUTOEXTEND ON  NEXT 500M MAXSIZE 5G 


create user factorytest identified by "factorytest" default tablespace factorytest_db; 


grant connect,resource,dba to factorytest;


alter user factorytest quota unlimited  on factorytest_db;


commit;




结尾:




     感谢阅读,祝有收获的一天,谢谢!





本文出自 “清风揽月的博客” 博客,请务必保留此出处http://watchmen.blog.51cto.com/6091957/1926409

以上是关于Oracle中如何用命令创建表空间?的主要内容,如果未能解决你的问题,请参考以下文章

如何用oracle 创建表空间?

oracle数据库如何用plsql客户端创建用户、表空间、临时表空间?

ORACLE-常用基础命令总结

oracle怎么创建表空间?

oracle创建表的时候提示超出表空间'SYSTEM'的空间限量,怎么办?

怎样用PLSQL Developer创建表空间