OracleDBA之路之Redo log files(一)

利用重做日志文件,在数据库发生故障时,可以重新处理事务。每个事务在处理的同时也会写入重做日志缓冲区,然后刷新到重做日志文件,这样,如果发生介质故障,重做日志文件将提供恢复机制。写入的信息包括尚未提交的事务处理、还原段信息以及方案和对象管理语句。重做日志文件用来在例程失败等情况下恢复尚未写入数据文件的提交数据。重做日志文件只用于恢复。

重做日志文件的结构
数据库管理员可设置 Oracle 数据库以维护联机重做日志文件副本,来避免由于单点故障丢失数据库信息。
联机重做日志文件组:
• 一组相同的联机重做日志文件副本称作联机重做日志组。
•LGWR 后台进程向组内所有联机重做日志文件并发写入相同信息。
• 为保证数据库的正常操作,Oracle 服务器最少需要两个联机重做日志文件组。
联机重做日志文件成员:
• 组内的每个联机重做日志文件称为成员。
• 组内的每个成员都有相同的日志序列号和同样的大小。Oracle 服务器每次写入日志组时,都分配一个日志序列号以唯一地识别每个重做日志文件。当前日志序列号存储在控制文件和所有数据文件的标头内。

联机重做日志文件组和成员的初始集是在数据库创建时创建的。
下面的参数限制了联机重做日志文件的数量:
• CREATE DATABASE 命令中的MAXLOGFILES 参数指定联机重做日志文件组的绝对最大数量。
• MAXLOGFILES 的最大值和缺省值取决于您的操作系统。
• CREATE DATABASE 命令所使用的 MAXLOGMEMBERS参数决定每个组的成员的最大数量。MAXLOGMEMBERS 的最大值和缺省值取决于您的操作系统。

重做日志文件如何发挥作用
Oracle 服务器将对数据库所做的所有更改按顺序记录到重做日志缓冲区中。LGWR 进程把重做条目从重做日志缓冲区写入联机重做日志组的其中一个组,这个组叫做当前联机重做日志组。LGWR 进程将在以下情况下写入:
• 当提交事务处理时
• 当重做日志缓冲区被写满三分之一时
• 当重做日志缓冲区内的已更改记录超过 1 MB 时
• 在 DBWn 将数据库缓冲区高速缓存中修改的块写入数据文件之前
重做日志文件是以循环方式使用的。每个重做日志文件组用一个日志序列号来标识,每次重新使用日志时就会覆盖原来的序列号。
日志切换:
LGWR 按顺序向联机重做日志文件写入重做信息。一旦当前联机重做日志文件组被写满,LGWR 就开始写入下一个组。这称为日志切换。
当最后一个可用联机重做日志文件已满时,LGWR 将返回第一个联机重做日志文件组并开始重新写入。

在检查点期间:
• 大量的灰数据库缓冲区数据(由正在经历检查点事件的日志所覆盖)被DBWn 写入到数据文件中。DBWn 写入的缓冲区的数量是由参数FAST_START_MTTR_TARGET决定的(如果已指定)。缺省值为零。
• 检查点后台进程CKPT 更新控制文件以反映该进程已成功完成。如果检查点是由日志切换引起的,CKPT 还会更新数据文件的标头。
可以针对数据库中的所有数据文件执行或者只针对特定数据文件执行检查点操作。

检查点可发生在下面情况中:
• 每次日志切换时
• 当已通过正常、事务处理或者立即选项关闭例程时
• 通过设置初始化参数 FAST_START_MTTR_TARGET 强制执行时
• 数据库管理员通过手动方式请求时
• ALTER TABLESPACE [OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] 命令导致对特定数据文件执行检查点操作时

如果初始化参数 LOG_CHECKPOINTS_TO_ALERT 设置为 TRUE,则有关每个检查点的信息都记录在 alert_SID.log 文件内。该参数缺省值为 FALSE,表示不记录检查点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值