oracle物理体系结构--控制文件

--------------------
控制文件虽小,但作用重大,它包含指向数据库其余部分的指针:联机重做日志文件和数据文件的位置,以及更新的归档日志文件的位置。还存储着维护数据库完整性所需的信息,例如各种重要的序列号和时间戳。
例如如果将恢复管理器工具用于备份,则控制文件也将存储这些备份的详细信息。
控制文件存储与数据库有关的元数据。包括关于数据库数据文件,归档重做日志,rman备份等有关的信息。以及其他数据库内部信息。
控制文件包含了许多数据库信息,如当前scn,数据库数据文件的状态以及数据库状态。控制文件也存储多种rman操作的关键信息,如每个数据库数据文件的备份状态。
-----------------
您不必考虑使控制文件的多路复用副本保持同步,oracle将做好这样一切,维护公共在将自动完成,您只需控制要制作多少副本,以及要将副本放于何处即可。
如果任何控制文件副本受损,数据库实例将立即终止。
如果创建数据库时设置的副本数据或或位置有误,您可以在后期添加添加或删除副本,或移动他们,但要注意,执行任何此类工作时会带来停机时间。
如果丢失控制文件,则需要遵循特定的过程来在控制文件中重新创建rman实例。在控制文件中还包含一类dba感兴趣的关于检查点scn的信息。
oracle将对该检查点scn与存储在数据文件头中的检查点scn进行交叉检查。如果他们完全匹配,则不需要进行数据库恢复工作。反之则需要进行某种类型的恢复工作。

--------------
(1)控制文件平常的作用时负责数据库的物理结构。控制文件控制数据库查找物理文件的位置,并控制每个文件当前包含的头信息,其内容包括数据库文件信息,重做日志信息,和归档日志信息。
控制文件还含有与数据库关联的关键文件的每一个文件头的快照。
(2)由于控制文件存储的是数据库文件信息,所以rman会利用控制文件获取备份所需的信息:具体操作方式是:rman使用控制文件来编译文件列表,得到检查点信息,并确定可恢复性。
通过直接访问控制文件,rman可以编译文件列表而不需要用户创建文件列表。
(3)控制文件还能用做rman目录。rman完成数据库任何部门的备份后,会在控制文件中添加该备份的记录,以及说明备份开始和结束时间的检查点。
这也是从oracle7到8版本控制文件大小呈指数增长的一个主要原因,即控制文件中存在rman表,控制文件中的这些记录通常称为元数据,它与实际备份中记录的数据有关,它也可以存储在恢复目录中。
(4)表空间和数据文件之间的关联在数据库控制文件中维护。其中列出所有数据文件,指明其所属的表空间,如果没有控制文件,实例就无法找到数据文件,然后识别组成system表空间的文件。只有
打开system表空间,实例才可能访问数据字典,才可能打开数据库.
---------------控制文件大小的相关内容
控制文件可以增长以满足空间增长的需求。例如:当添加一条用于新数据文件,新日志文件或新rman备份记录时,控制文件会通过扩张来解决增加空间的问题。不过,控制文件的扩张有一定的限制。
通常,大多数数据库会存在许多年,成天上万的重做日志切换和检查点都在它上面运行,对此,控制文件必须能够删除某些不在需要的数据,这样,在需要空间时,控制文件会根据时间来删除信息,
以轮询方式查找并重用表中的某些空间。当然有些信息是不能被删除的,例如:数据文件列表信息对于每时每刻的数据库操作来说至关重要。这类新记录必须有足够的新空间可用。
控制文件将其内部数据记录分为两类:循环重用记录和非循环重用记录。
1.循环重用记录包括可以从控制文件中删除的信息。 归档日志历史记录可以被删除,并且不会影响产品数据库。
2.非循环重用记录时那些不能被删除的记录。(如果控制文件因这类记录而空间不足,则会删除这些记录以得到更多的空间)例如数据文件列表和日志文件列表。

rman备份记录属于循环重用记录类别,如果含有这些记录的控制文件区域已满,这些记录就会被删除。这会给恢复带来灾难。如果控制文件不含有任何rman备份记录,rman就不能使用备份来执行恢复操作。
我们可以设置更大的时间帧来决定控制文件删除记录的时间,时间帧由init.ora文件中的CONTROL_FILE_RECODE_KEEP_TIME参数控制,该参数默认7天。
这表明如果记录的保留时间少于7天,就不会删除该记录。此时只能扩展控制文件区域。

如果实现一个恢复目录,不必担心会循环重用记录,因为只要在CONTROL_FILE_RECODE_KEEP_TIME参数指定的时间内至少实现一次恢复目录同步,恢复目录则从来不会删除记录。

-----------------备份控制文件:(重新构建控制文件)
通常在某些条件下需要重新构建数据库控制文件
(1)重新设置maxlogfiles或maxloghistory参数,由于某些参数定义了保存非循环重用记录的内部控制文件表的大小,所以只有在重新构建控制文件时才能设置这些参数。
(2)如果需要更大的内部控制文件表,就必须重新构建控制文件。
(3)如果使用rman而不使用恢复目录,就必须重视控制文件的重新构建。
执行alter database backup control file to trace;命令时,生成的脚本不包含控制文件中标识的备份信息。此时所有的rman信息丢失并且无法恢复。
在重新构建控制文件时,只有那些用rman设置的永久配置参数才被重新构建。
如果将控制文件备份成为一个二进制文件而不是一个跟踪文件,所以备份信息都将被保留。
alter database backup controlfile to '/u01/backup/bkup_cfile.ctl';

---------------------快照控制文件:
控制文件时一个非常繁忙的文件,它存储数据库的结构信息,这些信息包括用于恢复的检查点scn信息。连续的scn和文件管理对于数据库的生命周期来说至关重要,因此,rdbms必须能够持续地使用控制文件。
这样会为rman带来一个问题。rman开始备份每个数据文件时需要得到一个一致的控制文件视图。此时rman只需要知道备份开始时的最新检查点信息和文件结构信息。
开始备份后,rman需要这些信息在备份操作期间保持一致,也就是说rman需要一个读取一致的控制文件视图,除非rman在备份持续时间内锁定控制文件,
否则数据库会不断更新控制文件,所以这是不可能的,但是,锁定控制文件意味着数据库不能执行检查点操作和切换日志,或者不能产生新的归档日志,这些操作时不可能的。

rman使用快照控制文件来解决前面的问题。
快照控制文件时控制文件的副本。rman只在备份额和同步操作期间使用快照控制文件。这些操作开始时,rman会根据实际控制文件内容来刷新快照控制文件,这样会短暂地锁定控制文件,
随后,rman会切换到快照并在备份期间持续使用这个快照。这种方式具有读取一致性,且不妨碍数据库活动。
快照控制文件位于ORACLE_HME/dbs目录中
使用configure snapshot controlfile命令可以在任何时候更改快照控制文件名。
configure snapshot controlfile  to '';


-------------多路复用控制文件
shutdown immediate;
host copy c:\app\oracle\oradate\orcl\control01.ctl  d:\backup\control02.ctl
startup mount;
alter system set control_file="c:\app\oracle\oradate\orcl\control01.ctl","d:\backup\control02.ctl" scope=spfile;
startup force;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值