Oracle数据库分为逻辑存储结构和物理存储结构,我们分别看下这两种存储结构,如图:
一 逻辑存储结构
逻辑存储结构包括:表空间、段、区和块,由数据库创建和识别,对操作系统而言是未知的。
1)表空间TableSpace
表空间是数据库的逻辑划分,任何数据库对象都存储在表空间中,表空间一般由一个或多个数据文件构成,每个数据文件只能属于一个表空间,分配给表空间的数据库对象则被存储在该表空间的物理数据文件中。
表空间类型:永久性表空间、UNDO表空间、Temporary表空间。
表空间状态:读写状态(Read Write)、只读状态(Read Only)、脱机状态(Offline)。
Oracle 11g包括的表空间如下表:
表空间 描述 SYSTEM SYSTEM 表空间是每个Oracle数据库必须的,数据库创建时自动创建,用于管理数据库,包括一系列表和视图组成的数据字典。 SYSAUX 是SYSTEM表空间的辅助表空间,包含一些组件和产品的数据信息,以减轻SYSTEM表空间的负担。Oracle 10g和之后的版本必须有一个SYSAUX表空间。
在安装过程中,AWR、Oracle Streams ,Oracle Text和Database Control Repository用SYSAUX作为它们的默认表空间。TEMP 临时表空间存储执行SQL语句时产生的临时数据,例如:该表空间用来查询排序。每个数据库应该有一个临时表空间作为用户的临时表空间。用户创建时没有指定特定的临时表空间,则数据库将指定TEMP为用户的临时表空间 UNDOTBS1 是数据库存储UNDO信息的表空间,每个数据库必须有一个UNDO表空间。 USERS 用户表空间,用来存储用户的永久性对象和数据,和TEMP表空间类似,每个用户都应该有一个自己的表空间,否则,用户对象将会创建在SYSTEM表空间中,创建新用户时,默认将USERS表空间作为用户的默认表空间。 EXAMPLE 示例表空间,包含一些样例模式,比如SCOTT、OE、HR等模式。
2)段Segment
段由多个区组成,包括特定类型的数据库对象,比如,数据库表存储在表段中,索引存储在索引段。
3)区Extent
区是段内连续的数据块,Oracle数据库用一个区单元的方式为段分配空间。当一个已存在的区满时,数据库为该段分配另一个区。
4)块Data block
数据块是数据库存储最小的I/O单元,一个区有多个连续的数据块组成,数据库创建时,数据库用默认的数据块尺寸。
数据库一旦创建,不能更改默认的数据块尺寸,但是可以创建不同于默认数据块尺寸的表空间。
二 物理存储结构
物理存储结构主要是一些物理文件,包括:数据文件、控制文件,重做日志文件、服务器参数文件、密码文件等。其中,数据文件、控制文件,重做日志文件是数据库必须的。
1)数据文件
数据文件是数据库里存储数据的操作系统文件。
2)控制文件
控制文件用来追踪数据库的物理组件,是查找数据库其他文件的重要文件。由于它的重要性,Oracle建议保存多份备份。
3)在线重做日志文件
在线重做日志文件存储数据变化的拷贝。
4)归档重做日志文件