目标
完成这一课的学习后,您应该能达到下列目标:
• 确定表空间和数据文件的用途
• 创建表空间
• 管理表空间
• 使用 “Oracle 管理文件” (Oracle Managed Files, OMF)
创建和管理表空间
表空间和数据文件
Oracle 在逻辑上以表空间存储数据,而实际上以数据文件 进行存储
。
• 表空间:
– 某一时刻只能属于一个数据库
– 由一个或多个数据文件组成
– 可进一步划分为逻辑存储单元
• 数据文件:
– 只能属于一个表空间和一个 数据库
– 是方案对象数据的资料档案库
数据库、表空间和数据文件是紧密相关的,但它们之间又有着重要区别:
• Oracle 数据库由一个或多个称为表空间的逻辑存储单元组成,表空间作为一个整体 存储数据库中的所有数据。
• Oracle 数据库内的每个表空间由一个或多个称为数据文件的文件组成,这些数据文 件是与 Oracle 运行所在的操作系统一致的物理结构。
• 数据库的所有数据都存储在数据文件中,数据库的每个表空间都由这些数据文件组 成。例如,最简单的 Oracle 数据库只有一个表空间和一个数据文件。而另一个数据 库可具有三个表空间,每个表空间由两个数据文件组成(共有六个数据文件)。
表空间类型
• SYSTEM 表空间
– 随数据库创建
– 包含数据字典
– 包含 SYSTEM 还原段
• 非 SYSTEM 表空间
– 用于分开存储段
– 易于空间管理
– 控制分配给用户的空间量为加强控制和方便维护,DBA 创建了表空间。Oracle 服务器识别两种类型的表空间:
SYSTEM 和所有其它表空间。SYSTEM 表空间:
• 随数据库创建
• 所有数据库均需要
• 包括数据字典(内含存储程序单元)
• 包含 SYSTEM 还原段
• 应不包括用户数据,尽管允许这样做非 SYSTEM 表空间:
• 支持更灵活地管理数据库
• 将还原段、临时段、应用程序数据段和应用程序索引段分开
• 根据备份要求将数据分开
• 分开动态和静态数据
• 控制分配给用户对象的空间量
创建表空间
1 CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M; 2 ---使用以下命令创建表空间: 3 CREATE TABLESPACE
1:命令创建表空间:
1 --创建表空间 2 --使用 CREATE TABLESPACE 命令可创建表空间: 3 CREATE TABLESPACE tablespace 4 [DATAFILE clause] 5 [MINIMUM EXTENT integer[K|M]] 6 [BLOCKSIZE integer [K]] 7 [LOGGING|NOLOGGING] 8 [DEFAULT storage_clause ] 9 [ONLINE|OFFLINE] 10 [PERMANENT|TEMPORARY] 11 [extent_management_clause] 12 [segment_management_clause] 13 /* 14 创建表空间 15 CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M; 16 使用以下命令创建表空间: 17 CREATE TABLESPACE 18 19 Tablespace:是要创建的表空间的名称 20 DATAFILE:指定组成表空间的一个或多个数据文件 21 MINIMUM EXTENT:确保表空间内每个占用区的大小是整数 (integer) 的倍数。使用 K 或 M 以千字节或兆字节为单位指定该大小。 22 BLOCKSIZE:BLOCKSIZE 指定表空间的非标准块大小。要指定该子句,必须具有DB_CACHE_SIZE,并至少设置一个 DB_nK_CACHE_SIZE 参数,在该子句中指定的整数(integer) 必须与一个 DB_nK_CACHE_SIZE 参数设置相对应。 23 LOGGING:指定在缺省情况下,表空间内的所有表、索引和分区的所有更改都写入重做日志文件。LOGGING 为缺省设置。 24 NOLOGGING:指定在缺省情况下,表空间内的所有表、索引和分区的所有更改都不写入重做日志文件。NOLOGGING 只影响某些 DML 和 DDL 命令,如直接加载。 25 DEFAULT:DEFAULT 指定表空间内创建的所有对象的缺省存储参数。 26 OFFLINE:指定表空间从创建后就不可用。 27 PERMANENT:指定表空间可用于保留永久对象。 28 TEMPORARY:指定表空间仅用于保留临时对象,如:由 ORDER BY 子句引起的隐式排序所使用的段。不能指定 EXTENT MANAGEMENT LOCAL 或 BLOCKSIZE 子句。 29 extent_management_clause:该子句指定如何管理表空间内的区。该子句在本课的后续部分中讨论。 30 segment_management_clause:这只与永久的、且在本地管理的表空间相关。通过它可指定 Oracle 是否应使用空闲列表或位图来跟踪表空间段中的已占用空间和空闲空间。 31 datafile_clause:== filename [SIZE integer[K|M] [REUSE][ autoextend_clause ] 32 filename:是表空间中的数据文件的名称。 33 SIZE:指定文件大小。使用 K 或 M 以千字节或兆字节为单位指定大小。 34 REUSE:允许 Oracle 服务器重新使用现有文件。 35 autoextend_clause:该子句启用或禁用数据文件的自动扩展。 36 NEXT:以字节为单位指定在需要更多区时自动分配的磁盘空间下一增量的大小。 37 38 39 MAXSIZE:指定数据文件可以自动扩展到的最大磁盘空间。 40 UNLIMITED:指定可分配给数据文件或 Tempfile 的磁盘空间是不受限制的。 41 42 */