表空间Tablespace

SQL Fundamentals: 表的创建和管理(表的基本操作,闪回技术flashback,表结构修改)

Oracle Schema Objects——Tables——TableStorage

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

逻辑结构


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


物理结构


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

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

[[email protected] 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

[[email protected] 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 表空间名称 ;

时间: 2024-11-03 13:39:35

表空间Tablespace的相关文章

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

数据文件和日志文件是数据库中最重要的文件.它们是数据存储的地方.每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多.数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表空间(tablespace).段(segment).区(extent).块(block),这些都是oracle数据库在数据文件中组织数据的基本单元.现在我们来理解这些概念. 块是数据存储的物理单位,也是数据文件中最基础的单位,数据直接存储在块上.是oracle空间分配的最小单位.oracle中的块大

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

https://docs.oracle.com/cd/B19306_01/server.102/b14220/physical.htm#i5919 本文系翻译 表空间tablespace,数据文件datafiles,和控制文件control files介绍 在逻辑上,oracle把数据存储在表空间tablespace中,而在物理上,数据是存储在datafiles中的. 图1 图1很好的诠释了表空间与数据文件的关系,这里这一个表空间对应了两个数据文件,而数据对象如表.索引等,他们只关心表空间,对物

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

数据文件和日志文件是数据库中最重要的文件.它们是数据存储的地方.每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多.数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表空间(tablespace).段(segment).区(extent).块(block),这些都是oracle数据库在数据文件中组织数据的基本单元.现在我们来理解这些概念.     块是数据存储的物理单位,也是数据文件中最基础的单位,数据直接存储在块上.是oracle空间分配的最小单位.oracle

表空间及组成表空间的物理文件

相关文件: fil0fil.h fil0fil.c 功能:对disk上的表空间及组成表空间的物理文件进行管理(如新建,打开,关闭,删除,重命名等操作):对表空间中的页在物理文件上进行存取(IO操作). Introduction 表空间的物理组成 Innodb在对数据库文件的管理上使用了类似oracle的表空间(tablespace)技术.表空间只是逻辑上的管理方法,数据库的存储在物理上仍是按文件进行.在innodb中有三种表空间:系统表空间(也被称为共享表空间),重做日志表空间和独立表空间.这三

【转】Oracle - 数据库的实例、表空间、用户、表之间关系

[转]Oracle - 数据库的实例.表空间.用户.表之间关系 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘

表空间的创建(学习笔记)

表空间的创建: 一般由管理员来创建,创建时使用管理员登录 表空间命名:以 TBS_为前缀,也可以自定义统一即可 定义表空间语法 CREATE[TEMPORARY] TABLESPACE 表空间名称 DATAFILE |TEMPFILE‘表空间路径’ SIZE 数字 K|M AUTOEXTEND ON |OFF [LOGGING|NOLOGGING] DATAFILE 保存表空间的磁盘路径,可以设置多个保存路径 TEMPFILE 保存临时表空间的路径 SIZE 空间大小 AUTOEXTEND 是否

Oracle - 数据库的实例、表空间、用户、表之间关系

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件.Oracle有一个很大的内存快,成为全局区(SGA

16_Oracle_Admin_什么是表空间以及如何创建表空间

一.什么是表空间(Tablespace)和数据文件(Data File) Data File是具体的物理文件,Linux系统上通过ls命令,Windows系统上使用dir命令可以查看得到,体积相应比较大:一个或多个Data File只属于一个Tablespace:用户的物理对象都存储在Data File里. Tbalespace则是一个逻辑概念,一组(一个或多个)datafile组成一个tablespace:而一个或多个tablespace在同一时间只属于一个数据库:Tablespace能进一步

oracle表空间的创建、修改、删除及一些参数解释

创建表空间 方法1:代码创建,如下:PL/SQL 建立表空间(一般建N个存数据的表空间和一个索引空间):      create tablespace 表空间名      datafile ' 路径(要先建好路径)\***.dbf  ' size *M      tempfile ' 路径\***.dbf ' size *M      autoextend on  --自动增长      extent management localSQL> / 表空间已创建.       方法2用sqlplu