ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 控制文件概述

控制文件概述

原创 Linux操作系统 作者:hujunhua19 时间:2011-03-23 14:01:02 0 删除 编辑

数据库控制文件(control file)是一个二进制文件,供数据库启动及正常工作
时使用。在数据库运行过程中,控制文件会频繁地被Oracle修改,因此数据
库处于开启(open)状态时控制文件必须可写。如果控制文件因故不能访
问,数据库 也将无法正常工作。

每个控制文件(control file)只能供一个Oracle数据库使用。

控制文件的内容

控制文件(control file)中包含了其所属数据库的信息,实例(instance)在
启动,及正常工作期间都需要存取这些信息。控制文件的内容只能由Oracle
修改,数据库管理员或用户都不应编辑控制文件。

控制文件(control file)中主要包含以下内容:
● 数据库名(database name)
● 数据库创建时的时间戳(timestamp)
● 属于此数据库的数据文件(datafile)及重做日志文件(redo log file)的
名称与存储位置
● 表空间(tablespace)信息
● 脱机(offline)的数据文件
● 日志历史信息
● 归档日志(archived log)信息
备份集(backup set)与备份块(backup piece)信息
● 数据文件与重做日志的备份信息
● 数据文件复制信息
● 当前的日志序列号(log sequence number)
● 检查点(checkpoint)信息

数据库名(database name)和数据库创建时间戳(timestamp)都来源于数据
库创建过程。数据库名既可以来自 DB_NAME 初始化参数中的设定值,也可
以来自 CREATE DATABASE 语句中的指定值。

每当添加,重命名,或移除数据库中的数据文件(datafile)及重做日志文件
(redo log file)时,控制文件(control file)就会被更新以反映这些数据库物
理结构变化。进行这些记录的目的是:
● Oracle可以籍此在数据库启动(startup)时识别打开的数据文件和重做
日志文件
● Oracle可以籍此在恢复数据库时识别当前可用及需要恢复的文件

因此,用户每次更改数据库的物理结构后(使用 ALTER DATABASE 语
句),一定要及时备份控制文件(control file)。

控制文件(control file)还被用于保存检查点(checkpoint)信息。每隔三秒
钟,检查点进程(checkpoint process,CKPT)将会在控制文件中记录重做日
志(redo log)检查点位置(checkpoint position)信息。当数据库恢复时,重
做日志中此点之前的重做条目(redo entry)都无需恢复,因为这些数据已经
被写入数据文件(datafile)中了。

多重控制文件

如同重做日志文件(redo log file)一样,Oracle也可以为一个数据库同时维护
多个完全相同的控制文件(control file)。通过在不同磁盘上为一个数据库存
储多重控制文件(multiple control file),可以有效地避免控制文件的单点脆
弱性(single point of failure)。当一个包含控制文件的磁盘发生故障时,如果
Oracle试图访问这个控制文件就会导致当前的实例(instance)出现故障。但
如果其他磁盘中存在此控制文件的备份,实例可以被立即重新启动而无需进
行数据库恢复。

如果一个数据库的所有控制文件永久丢失了,那么实例将中止且需要进行介
质恢复(media recovery)。如果没有当前控制文件(control file)的副本而必
须使用较早的备份,那么介质恢复过程将会比较复杂。因此Oracle强烈建议
用户遵循以下规则:
● 在每个数据库中使用多重控制文件(multiple control file)
● 将控制文件的副本存储在不同的物理磁盘上
● 使用操作系统的镜像功能(operating system mirroring)
● 监控备份工作

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24270312/viewspace-690265/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 临时数据文件
下一篇: oracle事务简介
请登录后发表评论 登录
全部评论

注册时间:2011-03-21

  • 博文量
    18
  • 访问量
    18152