Oracle 11g R2 管理重做日志文件
admin
2023-04-19 08:02:17
0次

重做日志也称联机重做日志。引入重做日志的目的是数据恢复。在数据库运行过程中,用户更改的数据会暂时存放在数据库的高速缓冲区中。为了提高写数据的速度,并不是一旦有数据变化,就把变化的数据写到数据文件中。频繁的读写磁盘文件会使数据库系统效率降低,所以要等到数据库高速缓冲区中的数据达到一定的量或者满足一定的条件时,DBWR进程才会将变化了的数据写到数据文件中。这种情况下如果在DBWR把变化了的更改写到数据文件之前发生了宕机,那么数据高速缓冲区中的数据就会全部丢失。如果在数据库重新启动后无法恢复这部分用户更改的数据,显然是不可以的。

重做日志就是把变化了数据首先保存起来,其中LGWR进程负责把用户更改的数据写到重做日志文件中,这样数据库启动时,数据库系统从重做日志文件中读取这些变化了的数据,将用户更改的数据提交到数据库中,写入数据文件。
为提高磁盘效率和防止重做日志文件的损坏,oracle使用特殊的重做日志文件结构,是由3个重做日志组,每组包含两个重做日志组成员,当第一个日志组写满后,就会停止写入,向第二个日志组写入,第二个日志组写满后,向第二个日志组写入,第三个日志组写满后向第一个日志组写入,oracle使用这种循环方式使用重做日志组。

oracle规定每个数据库至少有两个日志组,每组至少包含一个或多个日志成员。oracle循环的使用重做日志组,当一个重做日志组写满后进行日志切换,切换到它可以找到的其他重做日志组。使用新的重做日志组之前,DBWR进程需要将所有的数据更改写入到数据文件中。如果数据库处于归档模式下,当发生日志切换时,归档进程(ARCH)会把当前已满的重做日志文件中的数据复制到归档日志中。

设计成多个日志成员的目的是在日志组内某个日志文件损坏后及时提供备份,所以同一组的日志成员一般内容信息相同,但是存放位置不同。

读取重做日志文件信息

数据字典视图V$log记录当前数据库的日志组序号,日志序列号,每个日志文件大小,每个日志组的成员数量,以及日志组的当前状态。

使用V$LOG查看重做日志信息

输出结果有三个日志组,每个日志组分别有一个日志文件。日志组2为当前正在使用的重做日志组,称为当前日组,当前日志文件还没有归档,其他非活动重做日志文件已经归档。

数据字典V$LOGFILE记录了当前日志组号,该日志组的状态、类型和日志组成员信息。

使用V$LOGFILE查看重做日志组信息

其中,status参数的含义如下:

空白:此文件正在使用。

stale:该文件内容是不完整的

invalid:该文件不可以被访问,如刚建立

deleted:该文件已不再有用

根据上面输出结果可以知道,数据库有3个重做日志组,每个日志组有1个重做日志文件。

重做日志组及其成员管理

创建重做日志组:

一个oracle数据库日志组太少,可能导致日志文件切换频繁,影响系统性能,所以有时需要增加新的日志组。如果日志组内只有一个日志成员,为避免损坏则需要增加新的日志成员。

使用v$log查看重做日志信息
Oracle 11g R2 管理重做日志文件
使用v$logfile查看重做日志组信息Oracle 11g R2 管理重做日志文件
创建重做日志组的方法:
Oracle 11g R2 管理重做日志文件
删除重做日志组
Oracle 11g R2 管理重做日志文件
添加删除重做日志文件
Oracle 11g R2 管理重做日志文件
会发现新添加的日志文件redo33.log是无效状态,三个日志组的日志成员还没有写满,所以redo33.log是无效状态,只要做两次强制日志切换就可以发现是ONLINE状态了Oracle 11g R2 管理重做日志文件
删除重做日志文件
Oracle 11g R2 管理重做日志文件
到操作系统日志文件存放目录上查看是否还存在redo33.log
Oracle 11g R2 管理重做日志文件
查看重做日志信息,group3是当前日志组
Oracle 11g R2 管理重做日志文件
删除日志组3中的日志文件redo33.log,会发现当前日志组中的日志文件是没有办法删除的
Oracle 11g R2 管理重做日志文件
强制切换日志后,就可以删除新添加的日志文件了。
Oracle 11g R2 管理重做日志文件
删除重做日志文件的限制条件如下

Ø 不能删除当前组的成员,若要删除则先执行强制性切换重做日志的命令:alter system switch logfile

Ø 活动日志成员不可以删除

Ø 没有归档的日志成员不可删除

Ø 当前日志组中只有一个成员是也不能删除

日志组切换和检查点事件

日志切换就是停止写当前日志组,转向另一个新的日志组。系统可以自动切换,也可以手动切换。当发生日志切换时,系统会在后台完成检查点操作,以减少实例的恢复时间。

检查点是一个事件,用于减少实例恢复的时间。当检查点发生时,它会出发DBWR进程,把数据高速缓冲区中变化了的数据写入数据文件,同时检查点进程更新控制文件和数据文件头部,保证数据的一致性。检查点其实是一个后台进程,用来保证所有修改过的数据库缓冲区的数据写入数据文件。

检查点事件越频繁,则一旦数据库发生故障,需要数据恢复的重做日志中的数据就越少(因为在恢复时,就不必检查恢复检查点之前的重做日志中的数据),所以就减少实例的恢复时间。

强制日志切换并强制产生检查点事件。

强制日志切换
Oracle 11g R2 管理重做日志文件
强制产生检查点事件
Oracle 11g R2 管理重做日志文件
如果对此文有什么问题的话,请加下面微信一起探讨
Oracle 11g R2 管理重做日志文件

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...