控制文件负责数据库的物理结构,控制文件控制数据库查找物理文件的位置,并控制每个文件当前包含的头信息,其内容包含数据文件信息,重做日志信息和归档日志信息;控制文件还还有与数据库关联的关键文件的每一个文件头的快照(snapshot)。
由于控制文件存储的是数据文件信息,所以RMAN会利用控制文件获取备份所需的信息,具体操作方式是:RMAN使用控制文件来编译文件列表而不需要用户创建文件列表,并且额在添加一个新文件时不需要更改这个脚本,控制文件会储存这个新文件的信息,因此RMAN也可以从控制文件中得到这个新文件的信息。
控制文件还能用作RMAN目录。RMAN完成数据库任何部分备份后,会在控制文件中添加该记录,以及说明备份开始和结束时间的检查点信息。
控制文件将其内部数据记录分为两类:循环重用记录和非循环重用记录。循环重用记录包含可以从控制文件删除的信息。例如:归档日志历史信息可以删除,并且不会影响产品数据库。非循环重用记录是那些不能被删除的记录,如果控制文件因这类记录而空间不足,则会删除这些记录已得到更多的空间。非循环重用记录包括数据文件列表和日志文件列表。
控制文件中的RMAN备份记录属于循环重用记录类别,如果含有这些记录的控制文件区域已满,这些记录就会被删除。这会给恢复带来灾难。
可以通过设置controlfile_record_keep_time参数控制保留时间,参数默认值为7天,表明如果记录的保留时间少于7天,就不会删除该记录,此时只能扩展控制文件区域。参数设置为0时将不会发生重用记录,相应的控制文件将不断扩展直至无法管理(不建议)。
如果重建控制文件丢失,将导致RMAN备份的元数据丢失。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
SQL> show parameter control NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_file_record_keep_time integer 7
SQL> alter system set control_file_record_keep_time= 20 ;
System altered. SQL> show parameter control NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_file_record_keep_time integer 20
[oracle@aix211 ~]$rman target / Recovery Manager: Release 10.2. 0.1. 0 - Production on Wed Jun 18 15 : 02 : 45 2014
Copyright (c) 1982 , 2005 , Oracle. All rights reserved.
connected to target database: PROD (DBID= 259825570 , not open)
RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;
control_file_record_keep_time指定的时间应该超过recovery window。 |
快照控制文件:
RMAN在备份期间需要得到一个一致的控制文件视图,RMAN需要知道备份开始时的最新的检查点信息和文件结构信息。开始备份后,RMAN需要这些信息在备份操作期间保持一致。
在热备份期间,控制文件是在不断的发生变化,RMAN又如何获得一个控制文件一致性的视图呢?
RMAN使用快照控制文件(snapshot controlfile)来解决前面的问题,快照控制文件时控制文件的副本。RMAN只在备份和同步操作期间使用快照控制文件。这些操作开始时,RMAN会根据实际控制文件内容来刷新快照控制文件,这样会短暂地锁定控制文件;随后,RMAN会切换到快照并在备份期间持续使用这个快照。这种方式具有读取一致性,且不妨碍数据库活动。
快照控制文件默认在dbs目录下,文件名:snapcf_<ORACLE_SID>.f
1
2
3
4
5
|
[oracle@aix211 ~]$cd $ORACLE_HOME/dbs [oracle@aix211 dbs]$ls ab_+ASM.dat hc_prod.dat init .ora initprod.ora lkPROD snapcf_prod.f
hc_+ASM.dat init +ASM.ora initdw.ora lk+ASM orapwprod spfileprod.ora
[oracle@aix211 dbs]$ |
重命名快照控制文件:
configure snapshot controlfile name to '<location\file_name>';