1、重做日志文件的作用:用于记录数据所作的所有更改,提供恢复机制;
2、重做日志文件的结构:
一组相同的联机重做日志文件副本称为联机重做日志文件组,LGWR后台进程向组内所有的联机重做日志文件并发写入相同信息;为保证数据库的正常操作,ORACLE服务器需要至少2个联机重做日志文件组。组内每个联机重做日志文件被称为成员,有相同的日志序列号和大小;联机重做文件最小为50KB;
3、重做日志文件是以循环的方式使用的;当一个重做日志文件被写满,LGWR则会移动到下一个日志组,这叫
日志切换;同时还将进行检查点操作,将检查点信息写入控制文件;LGWR进程将重做条目从重做日志缓冲区写入联机重做日志文件的一个组,这个组被称为当前联机重做日志文件组;LGWR将在以下情况写入:
提交事务处理时;
当重做日志缓冲区被写满1/3时;
当重做日志缓冲区内已更改记录超过1M时;
DBWn将数据库缓冲区高速缓存中修改的块写入数据文件之前;
4、检查点:
如果检查点是由日志切换引起的,CKPT还会更新数据文件的标头;检查点的发生情况如下:
每次日志切换时;
当已通过正常、事务处理或立即选项关闭例程时;
通过设置初始化参数 FAST_START_MTTR_TARGET 强制执行时;
数据库管理员通过手动方式请求时;
ALTER TABLESPACE [OFFLINE NORMAL|READ ONLY|BEGIN BACKUP];导致对特定数据文件执行检查点操作;
如果初始化参数LOG_CHECKPOINTS_TO_ALERT设置为TRUE,则有关每个检查点信息都记录在alert_SID.log内;该参数缺省值为FALSE,表示不记录检查点;
5、强制执行日志切换和检查点:
ALTER SYSTEM SWITCH LOGFILES;强制执行日志切换
FAST_START_MTTR_TARGET=…;强制执行检查点操作,例程恢复所用操作不应超过…秒
6、对联机重做日志文件的多元备份:
添加联机重做日志文件组:
添加联机重做日志文件成员:
删除联机重做日志文件:
若要增大或者减小联机重做日志文件组的大小,须新建联机重做日志文件组,再删除旧组;无法删除活动组或当前组;
删除联机重做日志文件组:
如果要删除的成员是组内最后一个有效的成员,则不能删除;如果该组为当前组,则必须先强制执行日志切换,才能删除该组成员;如果数据库正运行在ARCHIVELOG模式下且未将该日志文件组归档,则不能删除该成员;
重定位或重命名联机重做日志文件:
ORACLE服务器仅更改控制文件内的指针,不从物理上重命名或创建任何操作系统文件;
7、获取联机重做日志的信息:V$LOG(联机重做日志状态信息的视图)、V$LOGFILES(日志文件状态信息视图,获取组内所有成员的名称)
其中,STATUS的状态有以下几种:
UNUSED:刚添加的联机重做日志文件组,尚未对其进行写入;
CURRENT:当前的联机重做日志文件组,表示其也是活动的;
ACTIVE:表示联机重做日志文件组是活动的,但不是当前的;它可能已经归档了,也可能未归档;崩溃恢复时需要该状态,可用于块恢复;
INACTIVE:例程恢复不再需要联机重做日志文件组;可能归档了,也可能未归档;
CLEARING:表示在执行ALTER DATABASE CLEAR LOGFILE命令后,将该日志重建为一个空的日志,日志清除后,其状态为UNUSED;
CLEARING_CURRENT:表示清除当前日志中已经关闭的线程;如果日志切换时发生某些故障,则日志可能处于此种状态;
STATUS的值可为:
INVALID:该文件不可访问;
STALE:文件内容不完全;
DELETED:该文件已不再使用;
空白表示文件正在使用中;
8、归档的重做日志文件:
数据库配置的选择:ARCHIVELOG模式下和NOARCHIVELOG模式下
归档联机重做日志文件的方式有手动和自动(建议);LOG_ARCHIVE_START参数表明INSTANCE启动时,手动还是自动归档;如果为TRUE,则是自动归档,ARCn在每次日志切换时将已满日志进行归档;如果为FALSE(缺省),则是手动归档;DBA必须手动执行一条命令对所有或特定的联机重做日志文件进行归档。
获取归档日志的信息如下:
本文出自 “emily的学习笔记” 博客,转载请与作者联系!