• 数据库的运行需要依赖于操作系统,而数据库本身也保存在了操作系统的磁盘上,所以当用户向数据表中保存数据时,最终数据也还是保存在了磁盘上,只不过这些数据是按照固定的格式进行保存。
  • 在数据库数据和磁盘数据之间存在了两种结构:

逻辑结构

Oracle中所引入的结构,开发人员所操作的都只针对于Oracle的逻辑结构;

物理结构

操作系统所拥有的存储结构,而逻辑结构到物理结构的转换由Oracle数据库管理系统来完成

  • 表空间是Oracle数据库之中最大的一个逻辑结构,
    • 每一个Oracle数据库都会由若干个表空间所组成,
    • 而每一个表空间将由多个数据文件组成,
    • 用户所创建的数据表也统一都被表空间所管理。
    • 表空间与磁盘上的数据文件对应,所以直接与物理存储结构关联。
    • 而用户在数据库之中所创建的数据表、索引、视图、子程序等都被表空间保存到了不同的区域内。
    • 数据表受到表空间的管理;
    • 表空间分为两类:数据表空间、临时表空间。
    • 表空间在哪里:如下路径中DBF文件为数据库文件.

[oracle@WHOST gaga01]$ ls /u01/app/oracle/oradata/gaga01/

control01.ctl redo02.log sysaux01.dbf temp01.dbf     users01.dbf

redo01.log     redo03.log system01.dbf undotbs01.dbf

[oracle@WHOST gaga01]$

  • 在Oracle数据库之中一般有两类表空间:

系统表空间

是在数据库创建时与数据库一起建立起来的,

例如:用户用于撤消的事务处理,或者使用的数据字典就保存在了系统表空间之中,例如:System或Sysaux表空间;

非系统表空间

由具备指定管理员权限的数据库用户创建,主要用于保存用户数据、索引等数据库对象,

例如:USERS、TEMP、UNDOTBS1等表空间。

  • 创建表空间

非系统表空间的创建语法:

CREATE [TEMPORARY] TABLESPACE 表空间名称

[DATAFILE | TEMPFILE 表空间文件保存路径 ...] [SIZE 数字[K | M]]

[AUTOEXTEND ON | OFF] [NEXT 数字 [K|M]]

[LOGGING | NOLOGGING] ;

创建数据表空间

CREATE TABLESPACE test_data

DATAFILE '/u01/app/oracle/oradata/gaga01/test_data01.dbf' SIZE 50M , '/u01/app/oracle/oradata/gaga01/test_data.dbf' SIZE 50M

AUTOEXTEND on NEXT 2M

LOGGING ;

创建临时表空间

CREATE TEMPORARY TABLESPACE test1_temp

TEMPFILE '/u01/app/oracle/oradata/gaga01/test_temp01.dbf' SIZE 50M ,'/u01/app/oracle/oradata/gaga01/test_temp02.dbf' SIZE 50M

AUTOEXTEND on NEXT 2M;

  • 创建完之后的表空间,一定都会在数据字典中进行相关内容的记录.
  • 查看表空间:dba_tablespaces数据字典.
  • dba_tablespace数据字典可以查看数据表空间的信息,但是我们不知道每个表空间所花费的存储,两类表空间使用数据字典是不同的。可以使用dba_data_file(查看数据库表空间数据字典)和dba_temp_files(查看临时表空间数据字典)两个数据字典查看.
  • 子句说明:

DATAFILE

保存表空间的磁盘路径,可以设置多个保存路径;

TEMPFILE

保存临时表空间的磁盘路径;

SIZE

开辟的空间大小,其单位有K(字节)和M(兆);

AUTOEXTEND

是否为自动扩展表空间,如果为ON表示可以自动扩展表空间大小,反之为OFF;

NEXT

可以定义表空间的增长量;

LOGGING | NOLOGGING

是否需要对DML进行日志记录,记录下的日志可以用于数据恢复。

  • Oracle中的默认表空间
    • 在Oracle数据库中默认提供了以下几个表空间:

SYSTEM表空间

在一个数据库中至少有一个表空间,既System表空间。创建数据库时必须指明表空间的数据文件的特征,如数据文件名称、大小。System主要是存储数据库的数据字典,在Oracle系统表空间中存储全部的PL/SQL程序的源代码和编译后的代码,例如存储过程、函数、包、数据库触发器。如果要大量使用PL/SQL,就应该设置足够大的System表空间。

SYSAUX表空间

是System表空间的辅助表空间,许多数据库的工具和可选组件将其对象存储在SYSAUX表空间内,它是许多数据库工具和可选组件的默认表空间。

Users表空间

用于存储用户的数据。

Undo表空间(UNDOTBS1)表空间

用于事务的回滚、撤消;

Temp临时表空间

用于存放Oracle运行中需要临时存放的数据,如排序的中间结果等。

  • 创建数据表并使用特定表空间
    • 创建数据表并使用特定表空间
    • CREATE TABLE 用户名.表名称(

字段名称        字段类型        DEFAULT    默认值 ,

字段名称        字段类型        DEFAULT    默认值 ,

.....

)  TABLESPACE 表空间名称 ;

表空间Tablespace的更多相关文章

  1. 表空间tablespace,数据文件datafiles,和控制文件control files介绍

    https://docs.oracle.com/cd/B19306_01/server.102/b14220/physical.htm#i5919 本文系翻译 表空间tablespace,数据文件da ...

  2. oracle表空间tablespace

    用户:用户是在实例下建立的.不同实例可以建相同名字的用户. 表空间:表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个 ...

  3. oracle 创建表空间TABLESPACE

    题外话: 在oracle中,我们的数据库用户都有一个默认表空间归属,当在该用户下创建表或其他对象时默认会将其归属在默认表空间: 不排除后期修改了用户默认表空间的情况存在,此后新加入的对象默认会放置在新 ...

  4. oracle 删除表空间TABLESPACE步骤及注意项

    告诉大家,我喜欢通过toad for oralce来实现对oracle数据库的操作. 1.首先通过数据库管理员用户以SYSDBA身份登录.比如使用sys用户去登录 2.查看和记录待删除表空间所在的物理 ...

  5. 创建表空间tablespace,删除

    在plsql工具中执行以下语句,可建立Oracle表空间. /*分为四步 *//*第1步:创建临时表空间  */create temporary tablespace yuhang_temp temp ...

  6. oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)

    数据文件和日志文件是数据库中最关键的文件.它们是数据存储的地方.每一个数据库至少有一个与之相关的数据文件,通常情况下不仅仅一个,有非常多.数据在数据文件里是怎样组织的?要了解这些内容我们首先必须理解什 ...

  7. oracle中的表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)

    数据文件和日志文件是数据库中最重要的文件.它们是数据存储的地方.每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多.数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表 ...

  8. oracle 表空间tablespace

    一.Oracle 表空间的组成 Everoone knows Oracle数据库真正存放数据的是数据文件,Oracle表空间是逻辑上的概念,他在物理上是并不存在的,把多个DataFile合并到一起就是 ...

  9. Oracle基础 01 表空间 tablespace

    --查看表空间 select * from dba_tablespaces; select * from v$tablespace; select * from dba_data_files; --查 ...

随机推荐

  1. 控制反转是Spring框架的核心。

    早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题.他总结出是依赖对象的获得被反转了.基于这个结论,他为控制反转创造了一个更好的名字:依赖注入.许多非凡的应用(比H ...

  2. Mysql经常使用基本命令汇总及默认账户权限与改动

    一直仅仅是在浅显利用数据库存储数据.也被windows惯坏了.非常多命令使用的时候记不起来.so,换LINUX系统!不再使用GUI管理数据库!也想深入学习下Mysql.从权限管理開始.也就诞生了这篇学 ...

  3. $.ajax的一般用法

    $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$.ajax的一般格式 $.ajax({ type: 'POST', url: url , ...

  4. jquery获取当前select下拉选的属性值

    body中: <li> <select id="select_phone"></select> <input type="but ...

  5. Spring-bean的作用域

    在大多数情况下,单例bean是很理想的方案.初始化和垃圾回收对象实例所带来的的成本只留给一些小规模任务,在这些任务中,让对象保持无状态并且在应用中反复重用这些对象可能并不合理.在这种情况下,将clas ...

  6. jQuery-理解事件

    一.理解事件 1.什么是事件 事件是Web浏览器通知应用程序(比如我们的js)发生了某个事情! 我们可以为这些特定的事情,事先安排好处理方案,这样就能够实现互动! 2.事件目标 你可以简单的理解为事件 ...

  7. js 离开页面

    序言 大家是否经常遇到在关闭网页的时候,会看到一个确定是否离开当前页面的提示框?想一些在线测试系统.信息录入系统等就经常会有这一些提示,避免用户有意或者无意中关掉了页面,导致数据丢失.这里面的实现过程 ...

  8. Unity的加载路径

    1.Resources 路径 只读 不能动态的修改 存放内容 预制体(prefabs) - 不容易变化的预制体 prefabs打包的时候 会自动过滤不需要的资源 有利于减小资源大小 主线程加载 Res ...

  9. 如何通过phoenix中查看表的主键信息

    需求描述: 今天一个开发的同事让帮忙查看下表的主键列,在此记录下. 操作过程: 1.通过!primarykeys命令查看表的主键 !primarykeys SYNC_BUSINESS_INFO_BYD ...

  10. NHibernate初学四之关联一对一关系

    1:数据库脚本,创建两张表T_Area.T_Unit,表示一个单位对应一个地区,在单位表中有个AreaID为T_Area表中的ID: CREATE TABLE [dbo].[T_Area]( [ID] ...