Oracle中有一个表空间的概念,一个数据库可以有好几个表空间,表放在表空间下。

1. 创建表空间

创建表空间使用create tablespace命令:

CREATE TABLESPACE foo_tablespace
DATAFILE 'E:/oracle/data/foo_tablespace.dbf'
SIZE 20M
AUTOEXTEND ON NEXT 5M
MAXSIZE 500M;

DATAFILE 'E:/oracle/data/foo_tablespace.dbf'  指定逻辑上的表空间在磁盘上的物理存储文件。

SIZE 20M 指定表空间的初始大小,创建完成后到磁盘上查看:

不管里面有多少数据,初始化的时候会先分配20M。

AUTOEXTEND ON NEXT 5M 当之前分配的那20M空间用完了之后怎么办,这个时候就需要能够动态扩展,这里指定每次扩展的时候扩展5M的空间。

MAXSIZE 500M 动态扩展也总会有有一个上限的吧,这里指定动态扩展最大扩展到多少就不再继续扩展了。

创建完成后查看其相关信息:

SQL> SELECT * FROM dba_data_files;
FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS
-------------------------------------------------------------------------------- ---------- ------------------------------ ---------- ---------- --------- ------------ -------------- ---------- ---------- ------------ ---------- ----------- -------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF 4 USERS 5242880 640 AVAILABLE 4 YES 3435972198 4194302 160 5177344 632 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF 3 SYSAUX 262144000 32000 AVAILABLE 3 YES 3435972198 4194302 1280 262078464 31992 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF 2 UNDOTBS1 26214400 3200 AVAILABLE 2 YES 3435972198 4194302 640 26148864 3192 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 1 SYSTEM 503316480 61440 AVAILABLE 1 YES 3435972198 4194302 1280 503250944 61432 SYSTEM
E:\ORACLE\DATA\FOO_TABLESPACE.DBF 5 FOO_TABLESPACE 20971520 2560 AVAILABLE 5 YES 524288000 64000 640 20905984 2552 ONLINE

2. 使用表空间

查看用户的默认表空间:

SQL> SELECT username, default_tablespace FROM dba_users;
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
MGMT_VIEW SYSTEM
SYS SYSTEM
SYSTEM SYSTEM
DBSNMP SYSAUX
SYSMAN SYSAUX
FOO USERS
SCOTT USERS
SAM USERS
TOM USERS
OUTLN SYSTEM
MDSYS SYSAUX
ORDSYS SYSAUX
CTXSYS SYSAUX
ANONYMOUS SYSAUX
EXFSYS SYSAUX
DMSYS SYSAUX
WMSYS SYSAUX
XDB SYSAUX
ORDPLUGINS SYSAUX
SI_INFORMTN_SCHEMA SYSAUX
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
OLAPSYS SYSAUX
MDDATA USERS
DIP USERS
TSMSYS USERS
24 rows selected

一些特殊用户的默认表空间是SYSTEM,普通用户的默认表空间是USERS。

修改用户的默认表空间(只对一个用户生效):

ALTER USER SCOTT DEFAULT TABLESPACE foo_tablespace;

修改数据库级别的默认表空间(对整个数据库都生效):

ALTER DATABASE DEFAULT TABLESPACE foo_tablespace;

关于表空间:

在Oracle9i中,如果没有用DEFAULT TABLESPACE子句指定用户默认表空间的话其默认表空间就是SYSTEM,而且也不能为数据库指定默认表空间。

在Oracle10g中定义数据库级别的默认表空间是USERS,在创建用户时如果没有指定默认表空间就会使用数据库级别默认表空间。

在创建表的时候指定使用哪一个表空间:

CREATE TABLE t_user(
id INT NOT NULL ,
username VARCHAR2(20) NOT NULL ,
passwd CHAR(32) NOT NULL ,
CONSTRAINT PK_T_USER PRIMARY KEY (id)
) TABLESPACE foo_tablespace;

查看t_user表所属的表空间:

SQL> SELECT TABLE_NAME, TABLESPACE_NAME  FROM user_tables WHERE table_name='T_USER';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T_USER FOO_TABLESPACE

对于已经创建了的表可以将其从一个表空间下移动到另一个表空间下:

ALTER TABLE t_user MOVE TABLESPACE users;

再查看,会发现之前的t_user已经到了默认的users表空间下:

SQL> SELECT TABLE_NAME, TABLESPACE_NAME  FROM user_tables WHERE table_name='T_USER';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T_USER USERS

3. 重命名表空间

重命名表空间,修改表名类似:

ALTER TABLESPACE foo_tablespace RENAME TO foobar_tablespace;

4. 删除表空间

删掉表空间,连同其内已有的数据对象和磁盘上之前指定的数据文件都一并删掉:

DROP TABLESPACE foo_tablespace INCLUDING CONTENTS AND DATAFILES;

需要注意删除表空间的时候表空间必须不在使用状态。即没有哪个数据库用其作为默认表空间。

.

Oracle笔记之表空间的更多相关文章

  1. 记一次ORACLE的UNDO表空间爆满分析过程

    这篇文章是记录一次ORACLE数据库UNDO表空间爆满的分析过程,主要整理.梳理了同事分析的思路.具体过程如下所示: 早上收到一数据库服务器的UNDO表空间的告警邮件,最早一封是7:55发出的(监控作 ...

  2. Oracle 10g bigfile表空间、smallfile 表空间

    smallfile tablespace设置不同大小的db_block_size时数据文件允许的最大大小 db_block_size=2KB,2KB*4M=8192M      8Gdb_block_ ...

  3. Oracle 10g创建表空间的完整步骤详解

    本文我们主要介绍了Oracle 10g创建表空间的完整步骤,包括表空间的创建与删除.为应用创建用户以及权限的授予等操作,希望能够对您有所帮助. AD:WOT2014:用户标签系统与用户数据化运营培训专 ...

  4. 如何让Oracle释放undo表空间

    如何让Oracle释放undo表空间   最佳答案   在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G 但是这些表空间 ...

  5. [Oracle]理解undo表空间

    一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中,而多个并行事物可以使用同一个回退段. ...

  6. oracle用户与表空间操作

    oracle系统用户sys,system , sysman, scott 使用system用户登录[username/password][@server][as sysdba|sysoper]eg: ...

  7. 删除Oracle用户及表空间

    --转载自 https://blog.csdn.net/sunny05296/article/details/81126548--以sysdba用户登录,查找需要删除的用户conn / as sysd ...

  8. Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间

    Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop ...

  9. Oracle笔记 多表查询

    Oracle笔记  多表查询   本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查 ...

随机推荐

  1. Matlab中TCP通讯-实现外部程序提供优化目标函数解

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Matlab中TCP通讯-实现外部程序提供优化目标函数解     本文地址:http://te ...

  2. 【Linux】- 简明Vim练习攻略

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...

  3. ASP.NET 页面访问控制

    request常用对象和方法: @属性:1.quary string,获取通过URL路径传来的数据 2.Form,获取通过表单提交传输的数据 3.servervariables,获取Web服务器变量的 ...

  4. python 小数保留位数

    利用round(number[, ndigit] )函数四舍五入 保留浮点数的小数点. 如保留小数点后两位. num = 9.2174 new_num = round( num , 2 ) 则new_ ...

  5. 【bzoj4709】[Jsoi2011]柠檬 斜率优化

    题目描述 给你一个长度为 $n$ 的序列,将其分成若干段,每段选择一个数,获得 $这个数\times 它在这段出现次数的平方$ 的价值.求最大总价值. $n\le 10^5$ . 输入 第 1 行:一 ...

  6. BZOJ4976 宝石镶嵌(动态规划)

    显然被留下的宝石应该贡献至少一位,否则就可以扔掉.所以如果n-k>=logw,直接输出所有数的or.现在n变得和k同阶了.于是设f[i][j]为前i个数or为j时至少选几个数,转移显然.当然可以 ...

  7. [JSOI2007]字符加密 后缀数组

    题面:洛谷 题解: 我们考虑,如果可以将环上每个长度为len的串都提取出来,再做个排序,那这题我们就做出来了! 但是提取$n^2$,怎么办? 考虑破环成链,再扩充为原来的2倍. 然后直接做后缀排序,把 ...

  8. hadoop(四)HDFS的核心设计

    一.hadoop心跳机制(heartbeat) 1. Hadoop 是 Master/Slave 结构, Master 中有 NameNode 和 ResourceManager, Slave 中有  ...

  9. 网络编程----socketserver多并发实现、FTP上传多并发、udp协议套接字多并发

    一.socketserver多并发                                                              基于tcp的套接字,关键就是两个循环,一个 ...

  10. C++之面向对象编程20170912

    /*************************************************************************************************** ...