重做日志文件

本文详细介绍了Oracle数据库中的重做日志文件的作用及其管理方式。包括重做日志文件如何帮助实现数据库恢复、重做日志文件组的组成及工作原理、LGWR进程的工作流程等关键内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所有数据库高速缓存区中已经提交的数据都会被写入重做日志缓存区中,然后被LGWR后台进程写入重做日志文件中。oracle服务器能保证所有被提交的数据都会被写入重做日志文件中。一旦数据库崩溃就可以利用重做日志文件实现数据库的完全恢复。引入重做日志文件的目的就是为了实现数据库的恢复。

1、每个重做日志文件组的成员中存储的内容时完全相同的,在同一时刻LGWR只能往一个重做日志文件组中写入数据,然后将相同的数据复制到同组的其他成员文件中。要保证oracle服务器可以正常运行至少要存在两个重做日志组

2、oracle引入重做日志归档的结构来实现在重做日志组切换时保证前面写入的数据不被后续的写入信息覆盖。oracle服务器保证在归档写进程没有将重做日志文件中的信息写入归档日志文件之前,LGWR不能再写这组重做日志文件。

3、重做日志文件是联机文件,oracle服务器在运行期间需要管理他而归档日志文件是脱机文件oracle服务器在运行期间时不需要管理他们的。oracle利用把重做日志分组和引入归档日志的方式在数据库的效率和数据库的可恢复性之间进行了巧妙的折衷。

4、在生产库上一般每个重做日志文件组中都会有至少三个成员。在oracle运行时只有在当前LGWR进程正在写入的组中的所有的重做日志文件成员都被损坏时oracle服务器才会关闭,只要不是LGWR进程正在写入的重做日志组,即使该组中的所有成员都被损坏oracle服务器也不会关闭,只有等到切换到该组时oracle服务器才会关闭。oracle会将成员的损坏信息写入报警文件中,所以dba要经常的查看报警文件提前修复和维护重做日志成员文件。

5、强制性的产生重做日志切换的命令是:alter system switch logfile

    强制性产生检查点的命令是:alter system checkpoint

也可以通过设置参数FAST_START_MTTR_TARGET=900来强制产生检查点意思是:实例恢复的时间不超过900秒

6、要获得重做日志的信息可以通过两个数据字典v$log、v$logfile

v$log字典中的状态status字段的取值含义如下:

inactive:表示数据库实例的恢复已经不再需要这组联机重做日志组了

active:表示这组联机重做日志组是活动的但是不是当前的,在实例恢复时需要这组重做日志组。如这组重做日志组正在归档。

current:表示这组联机重做日志组是当前组LGWR进程正在写入该重做日志组

unused:表示oracle服务器从来没有写过该重做日志文件组,这是重做日志文件刚被添加到数据库中的状态。

v$logfile字典中的状态status字段的取值含义如下:

空白:表示该文件正在使用

stale:表示该文件中的内容是不完全的

invalid:表示该文件是不可以被访问的

deleted:表示该文件已不再有用了

posted on 2014-06-17 21:38 moonfans 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/moonfans/p/3793543.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值