1.4.3 控制文件
控制文件(Control File)是一个记录数据库结构的二进制文件,它是数据库正常启动和使用时所必需的重要文件。每个数据库必须只能拥有一个控制文件,但可同时拥有同一个控制文件的多个备份,一个控制文件只能属于一个数据库。
1.控制文件记录
控制文件中记录着启动和正常使用数据库时实例所需的各种数据库信息,主要包括下面的内容:控制文件所属的数据库名、数据库建立的时间;数据文件的名称、位置、联机/脱机状态信息;重做日志文件的名称和路径;表空间名称等信息;当前日志序列号、日志历史记录;归档日志信息;最近检查点信息;数据文件副本信息;备份数据文件和重做日志信息。
实例在加载数据库时读取控制文件,以找到自己所需的操作系统文件(数据文件、重做日志文件等)。如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,则数据库将无法加载和打开。
在数据库运行的过程中,每当数据库中的数据文件或重做日志文件被增加、改名或删除时,或者是数据库物理结构发生变化(如执行ALTER DATABASE命令)时,都要更新控制文件以记录这些变化。因此,控制文件必须在整个数据库打开期间始终保持可用状态。
控制文件中的内容只能够由Oracle本身来修改,任何DBA或者数据库用户都不能编辑控制文件中的内容。如果由于某种原因导致控制文件不可用,那么数据库将会崩溃。
由于控制文件的重要性,Oracle建议每个数据库至少有两个完全镜像的控制文件,并将它们保存在不同磁盘中。
2.查询控制文件信息
控制文件的信息记录在下面三个数据字典视图和动态性能视图中。
(1)V$CONTROLFILE动态性能视图
该数据字典中包括所有控制文件的名称和状态信息。
(2)V$CONTROLFILE_RECORD_SECTION动态性能视图
该视图中包含控制文件中每个记录段的信息,包括记录文档段类型、文件段中每条记录的大小、记录文档段中能够存储的条件数量、当前已经存储的条件数量等。
(3)V$DATABASE动态性能视图
V$DATABASE是从控制文件读出关于数据库的信息。该动态性能视图有许多列,如数据库名等内容。