在数据库创建阶段,至少必须创建两个数据文件。一个用于SYSTEM表空间(存储数据字典),一个用于SYSAUX表空间(存储数据字典的辅助数据),一个用于UNDO表空间(存储保护事务所需的撤销段)。
数据文件是数据的存储仓库。数据文件的大小与数量实际上是不受限制。其大小只受操作系统和硬件功能的限制。
数据文件是系统管理员可以看见的物理结构。从逻辑上讲,它们是段(包含编程人员可以看到的用户数据的段,以及构成数据字典的段)的储存库。“段(segment)”是数据的存储结构,典型的段是表和索引。在数据库的生命周期内,可以随时重命名、移动、添加或删除数据文件,也可以重设其大小。对某些数据文件执行某些操作时,将产生停机时间。
在操作系统级别看,数据文件由多个操作系统块组成。在内部,将数据文件的格式设置为Oracle“块(block)”。在每个数据文件中,这些块连续编号。在创建数据文件时,块大小固定不变,在大多数环境中,整个数据库的块大小都是一样的。块大小设计调整问题,大小范围是2KB到32KB(收到平台的限制)。Oracle块大小与操作系统的块大小不存在任何关联。
块中存在头部分和数据区域,还可能有一些空闲空间。头部分包含诸如行目录的信息,行目录列出块中行数据区域中的位置(如果将相应的块用于表段),还包含行锁定信息(如果有事务或几个事务正在处理块中的行)。数据区域包含行本身,如行(如果是表段的一部分)或索引键(如果块是索引段的一部分)。
服务器进程对数据文件执行读操作,而DBWn对数据文件执行写操作。
其他数据库文件
这些文件位于数据库之外。在实际中,它们都是必需的,但雅阁地将,它们并不是数据库的一部分。
实例参数文件(Instance Parameter File)当启动Oracle实例时,SGA结构会根据此参数文件的设置内置到内存,后台进程会据此启动。这是启动实例所需的唯一文件。其中的参数有数百个,但只有一个是必需的,它就是DB_NAME参数。其他多有参数都有默认值。因此说,此参数文件可以很小,但必须存在。
口令文件(Password File)用户用过提交用户名和口令来建立对话。Oracle服务器根据存储在数据字典的用户定义对用户名和口令进行验证。数据字典是数据库中的一组表,如果未打开数据库,将无法对其进行访问。有时,需要在使用数据字典前对用户进行身份验证:在需要启动数据库时或创建数据库时。外部口令文件是完成此任务的一种方式。它包含存在于数据字典之外的少量用户名和口令(通常少于6个),这些用于在使用数据字典前连接到实例。
归档重做日志文件(Archive Redo Log Files)当联机重做日志文件变满时,ARCn进程会将联机重做日志文件从数据库复制到归档日志文件中。在完成后,归档日志就不再是数据库的一部分,因为它不是连续的数据库操作所必需的。但是,如果需要还原数据文件备份,它将起到重要的作用。Oracle提供了用于管理归档重做日志文件的功能。
警报日志和跟踪文件(Alert Log and Trace Files)警报日志是影响视力和数据库的某些重要操作的相关消息的连续流。并非所有事项都予以记录:只记录认为确实重要的事件,例如启动和关闭、更改数据库的物理结构和更改控制实例的参数。后台进程会在检测到错误条件时生成跟踪文件,有时也用于报告特定事件。
逻辑数据库结构
Oracle使用术语“段”来描述任何包含数据的结构。典型的段是包含数据行的表,但是Oracle数据库包含十多种段类型。其中最引人关注的表段、索引段和撤销段。Oracle通过表空间(tablespace)方式,将逻辑存储从物理存储中抽象出来。表空间在逻辑上是一个或多个段的集合,在物理上是一个或多个数据文件的集合。如果使用“关系分析”术语,则段和数据文件之间存在多对多关系:可以将一个表分布在多个数据文件中,而一个数据文件也可能包含多个表的一部分。Oracle通过在段和文件之间插���表空间实体,解决这种多对多关系的问题。
必须在创建数据库时创建SYSAUX表空间。如果未予指定,将创建默认的SYSAUX表空间。