001
控制文件平常的作用是负责数据库的物理结构。顾名思义,控制文件控制数据库查找物理文件的位置,并控制每个文件当前包含(或应当包含)的头信息,其内容包括数据文件信息、重做日志信息和归档日志信息。控制文件还含有与数据库关联的关键文件的每一个头文件的快照(snapshot)。正是因为包含有丰富的信息,所以在rman出现之前的任何恢复操作中,控制文件一直是主要的组件。
由于控制文件存储的是数据库文件信息,所以rman会利用控制文件获取备份所需的信息,具体的操作方式是:rman使用控制文件来编译文件列表,得到检查点信息,并确定可恢复性。通过直接访问控制文件,rman可以编译文件列表而不需要用户创建文件列表,这样避免了备份脚本时的一个非常繁琐的步骤,并且在添加一个新文件时不需要更改这个脚本。控制文件会存储新文件的信息,因此rman也能从控制文件中得到这个信息。
控制文件还能用做rman恢复目录。rman完成数据库任何部分的备份后,会在控制文件中添加该备份的记录,以及说明备份开始和备份结束时间的检查点信息。这也是从Oracle7到Oracle8版本控制文件大小呈指数增长的一个主要原因,即控制文件中存在rman表。控制文件中的这些记录通常称为元数据,它与实际备份中记录的数据有关,它也可以存储在恢复目录中。
002
控制文件将其内部数据记录分为两类:循环重用记录和非循环重用记录。循环重用记录包含可以从控制文件中删除的信息。例如,归档日志历史信息可以被删除,并且不会影响产品数据库。非循环重用记录是那些不能被删除的记录,如果控制文件因这类记录而空间不足,则会删除这些记录以得到更多的空间。非循环重用记录包括数据文件列表和日志文件列表。
控制文件中的rman备份记录属于循环重用记录类别,如果含有这些记录的控制文件区域已满,这些记录就会被删除。这会给恢复带来灾难,致使控制文件中不含有任何rman备份记录,rman就不能使用备份来执行恢复操作。因此,控制文件是rman的一个关键因素,没有备份记录,我们就不能执行恢复操作。如果删除某些备份记录,我们就不能再使用这些记录指向的备份。