Oracle数据库的各种物理结构:
包括数据文件(datafile)、重做日志文件(redo log files)、和控制文件(control files)。
数据文件:
每个Oracle数据库使用一个或多个物理的数据文件(datafile)。数据文件中包含所了有的数据库数据。按表、索引等逻辑数据库结构组织的数据存储在数据库的数据文件中。
数据文件的特点有:
-
一个数据文件只能属于一个数据库
-
当数据库空间用完时,数据文件可以按照预定的设置自动扩展。
-
一个或多个数据文件形成了数据库中的一种逻辑结构-表空间。
当需要时,数据文件中的数据通过数据库操作被读出,并缓存于Oracle的内存结构中。例如,当用户需要访问数据库表中的数据时,如果用户请求的数据还没有放入缓存中, 数据库就会把数据从相应的数据文件中读出再放入内存。
新建或修改的数据不一定立即被写入数据文件。为了减少磁盘访问以提高性能,变化数据暂存在内存中,在适当时间集中地写入相应的数据文件,这个过程由后台进程数据库写进程 (DBWn)(database writer process,DBWn)完成。]
控制文件:
每个Oracle数据库都有控制文件(control file)。控制文件中含有说明数据库物理结构的内容。例如,其中包含以下信息:
-
数据库名
-
数据文件、重做日志文件的名称和位置
-
数据库创建的时间戳
Oracle可以使用多重控制文件,即同时维护多个完全相同的控制文件,以防止控制文件损坏造成的数据库故障。
Oracle数据库的实例每次启动时,通过控制文件中的内容来确定哪些数据库文件和重做日志文件是执行数据库操作所必需的。当数据库的物理构成发生变化时(例如创建了新的数据文件或重做日志文件),Oracle自动地修改控制文件以反映这些变化。此外,数据库恢复(database recovery)时也要用到控制文件。
重做日志文件:
每个Oracle数据库都有两个或多个重做日志文件(redo log file)。这组文件作为一个整体被称为数据库的重做日志。重做日志由重做条目(redo record)构成(也被称为重做记录)。
重做日志的主要功能是记录对数据的操作。如果某种故障导致无法将修改过的数据永久的写入数据文件,那么这些修改内容可以从重做日志中获得,用户已完成的任务不会丢失。
为了防止重做日志自身的问题导致故障,Oracle支持多重重做日志(multiplexed redo log)功能,即将内容相同的多份重做日志保存在不同的磁盘中。
重做日志中的信息只能用于恢复由于系统或介质故障导致的不能被写入数据文件的数据。例如,如果突然的断电导致数据库操作停止,则内存中的数据不能被写入数据文件,造成数据丢失。当电力恢复数据库再次打开时可以恢复丢失的数据。将最新的重做日志文件中的信息应用于数据文件,Oracle可以将数据库恢复到断电时的状态。
在恢复操作中恢复重做日志信息的过程叫做前滚(rolling forward )。
注:摘自概念手册
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15720542/viewspace-607978/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15720542/viewspace-607978/