《Oracle编程艺术》学习笔记(9)-Oracle中的文件-数据文件和存储体系(表空间/段/区段/块)

本文详细介绍了Oracle数据库的存储体系,包括数据库文件系统(原始分区、ASM、集群文件系统)以及Oracle的存储层次:表空间、段、区段和块。表空间是逻辑单位,由数据文件组成,数据文件可存在于不同的文件系统中。表空间内包含段,段由区段组成,区段由块构成。文章还讨论了表空间的类型(永久、回滚和临时)、Extent管理和Segment管理,以及如何创建、修改和管理表空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一) 数据库文件系统

在 Oracle 中,可以用4 种文件系统机制存储数据。(一个数据库中可能包含下述所有类型文件)

·“Cooked”操作系统(OS)文件系统
这些文件存放在OS的文件系统中。可以使用OS工具来移动文件。Cooked 文件系统通常也会缓存,这说明在你读写磁盘时,OS会为你缓存信息。

·原始分区(raw partitions,也称裸分区)
这不是文件,而是原始磁盘。不能用OS工具查看其内容。它们就是磁盘上的一些大扇区,上面没有任何文件系统。对Oracle来说,整个原始分区就是一个大文件。这与cooked 文件系统不同,cooked 文件系统上可能有几十个甚至数百个数据库数据文件。目前,只有极少数Oracle安装使用原始分区,因为原始分区的管理开销很大。原始分区不是缓冲设备,所完成的所有I/O 都是直接I/O,对数据没有任何OS 缓冲(不过,对于数据库来说,这通常是一个优点)。

·自动存储管理文件系统(Automatic Storage Management,ASM)
这是Oracle 10g Release 1 的一个新特性(标准版和企业版都提供了这个特性)。ASM是专门为数据库设计的文件系统。可以简单地把它看作一个数据库文件系统。

·集群文件系统
这个文件系统专用于RAC(集群)环境,看上去有些像由集群环境中多个节点(计算机)共享的cooked 文件系统。Oracle 集群文件系统(Oracle Cluster File System,OCFS)是Oracle在这个领域推出的一个新的文件系统,目前只能在Windows和Linux上使用。其他第三方开发商也提供了一些经认证的集群文件系统,也可以用于Oracle。集群文件系统让cooked 文件系统的优点延伸到了集群环境中。


(二) Oracle的存储体系

Oracle的存储体系总结如下:
(1) 数据库由一个或多个表空间(Tablespace)组成。

(2) 表空间由一个或多个数据文件组成。这些文件可以是文件系统中的cooked 文件、原始分区、ASM管理的数据库文件,或集群文件系统上的文件。表空间包含段(Segment)。

(3) 段(TABLE、INDEX 等)由一个或多个区段(Extent)组成。段在表空间中,但是可以包含这个表空间中多个数据文件中的数据。

(4) 区段是磁盘上一组逻辑连续的块(Block)。区段只在一个表空间中,而且总是在该表空间内的一个文件中。

(5) 块是数据库中最小的分配单位,也是数据库使用的最小I/O单位。
通常Oracle从磁盘读写的就是块。
一个数据库中允许有多种块大小,目的是为了可以在更多的情况下使用可传输的表空间。如果能传输表空间,DBA就能从一个数据库移动或复制格式化的数据文件,把它放在另一个数据库中。
数据库还有一个默认的块大小,即执行CREATE DATABASE命令时初始化文件中指定的大小。SYSTEM表空间总是使用这个默认块大小。
可以按非默认块大小创建其他表空间。在所有给定的表空间内部,块大小都是一致的。

(三) 表空间 Tablespace

tablespace是Oracle空间管理上的逻辑单位,实体上存放数据的是tablespace里面的Data File。
所以tablespace可以看成是Data File的群组。
tablespace可进一步分为段segments、区段extents和块blocks。
一个datafile只属于一个数据库的一个tablespace。

当数据库刚建立起来,系统会建立一个叫做SYSTEM的系统tablespace,存放SYS、SYSTEM等User重要的系统数据。
创建数据库后,需要创建一个表空间,例如USERS,然后
alter database default tablespace users;
给数据库指定一个默认表空间。(否则会使用SYSTEM作为默认表空间,这很不好)
如果我们建立Oracle User时,不指定默认的tablespace,
则此User则会以USERS作为默认表空间。
创建表格时,如果不指定所用的表空间,就会使用用户的默认表空间。

表空间类型
1)Permanent
一般我们创建的表空间都是Permanent表空间。

2)Undo 
Undo tablespace是系统用的特殊的tablespace,
主要的功用是提供用户修改数据未c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值