②重做日志文件:重做日志文件(Redo Log File)的扩展名是.log,它记录了对数据的所有更改信息,并提供了一种数据恢复机制,确保在系统崩溃或其他意外出现后重新恢复数据库。
在Oracle数据库中,重做日志文件是成组使用的,每个重做日志文件组可以有一个或多个重做日志文件。在工作过程中,多个重做日志文件组之间循环使用,当一个重做日志文件组写满后,会转向下一个日志文件组。重做日志文件用于记录数据库变化,是用户的事务处理日志。
③控制文件:控制文件(Control File)的扩展名是.ctl,是一个二进制文件。控制文件中存储的信息很多,其中包括数据文件和重做日志文件的名称和位置。控制文件是数据库启动及运行所必须的文件。当Oracle读写数据时,要根据控制文件 的信息查找数据文件。
由于控制文件的重要性,一个数据库至少要有两份控制文件。Oracle 12c默认包含两个控制文件,各个控制文件内容相同,从而可以避免因为一个控制文件的损坏而导致无法启动数据库的情况出现。
控制文件中记录了以下关键信息:
数据文件的位置及大小;
重做日志文件的位置及大小;
数据库名称及创建时间;
日志序列号;
(2)其他文件其他文件有参数文件、归档日志文件、口令文件等。
2)Oracle逻辑结构数据库的逻辑结构是从逻辑的角度分析数据库的组成的。Oracle数据库的逻辑结构包括表空间、段、区、块和模式等。如图:
每个Oracle数据库都是由若干个表空间构成的,用户在数据库中建立的所有内容都被存储到表空间中。一个表空间可以由多个数据文件,但一个数据文件只能属于一个表空间。与数据文件这种物理结构不同,表空间属于数据库的逻辑结构。
在每个数据库中,都有一个名为“SYSTEM”的表空间,即系统表空间,还会有SYSAUX、UNDO、USERS等表空间,这些都是在创建数据库时自动创建的。管理员可以创建自定义的表空间并分配给指定用户,也可以为表空间增加和删除数据文件。
表空间基本有以下三类:
①永久性表空间:一般保持基表、试图、过程和索引等的数据。SYSTEM、SYSAUX、USERS表空间是默认安装的;
②临时性表空间:只用于保存系统中短期活动的数据,如排序数据等;
③撤销表空间:用来帮助回退未提交的事务数据,已提交的数据在这里是不可以恢复的;
一般不需要创建临时性表空间和撤销表空间,除非要把他们转移到其他磁盘中以提高性能。
表空间的目的如下:
①对不同用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户操作和对模式对象的管理;
②可以将不同数据文件创建不同的磁盘中,有利于管理磁盘空间、提高I/O性能、备份和恢复数据等;
一般在完成Oracle系统的安装并创建Oracle实例后,Oracle系统自动建立SYSTEM、SYSAUX、USRS等多个表空间。
下面详细介绍一下SYSTEM表空间、SYSAUX表空间、TEMP表空间和TEMP表空间:
SYSTEM表空间:用于存放Oracle系统内部表和数据字典的数据,如表名、列名、用户名等。不建议将用户创建的表,索引等对象存放到SYSTEM表空间中。
SYSAUX表空间:作为SYSTEM的辅助表空间,用于存放各种数据库工具用户的数据;还用于存放各种模式的对象数据,如智能代理用户DBSNMP等,这些模式在数据库安装完成后就建立了相应的对象并都存放在SYSAUX表空间中。
USERS表空间:通常作为用户使用的表空间,可以在这个表空间上创建各种对象,如表、索引等。
TEMP表空间:Oracle系统用于存放临时数据的特殊表空间。比如:当操作中需要进行排序时,Oracle系统就将排序的数据临时存放在该表空间内。排序处理完成后即可释放排序数据所占用的空间,因此成为临时表空间。