代码改变世界

oracle redo 重做日志文件

2016-01-21 00:57  No Sadness  阅读(936)  评论(1编辑  收藏  举报

以下易容翻译自oracle dba官方文档,不足之处还望指出。

管理重做日志文件

 学习目标:
1.解释重做日志文件的目的
2.描述重做日志文件的结构
3.学会控制日志切换与检查点
4.多元化管理重做日志文件
5.使用OMF管理重做日志文件


1.概念介绍:
重做日志文件通过记录数据的所有改变情况对系统或介质故障提供恢复机制。
1)重做日志文件以组的形式存在
2)一个oracle数据库至少需要两组,每组至少有一文件
3)在一组里的每一重做日志文件叫做成员
The redo log files are used only for recovery.

2.重做日志文件结构:

1)重做日志文件组
a.一组相同的副本联机重做日志文件被称为一个联机重做日志组。
b.LGWR进程并发的往日志组里所有重做日志文件写入相同信息
2)重做日志文件
a.一个组每个成员用于同一log sequence numbers和相同的大小
b.每次oracle服务器开始写入日志组时分配日志序列号来唯一标识每个重做日志文件
c.当前的日志序列号存储在控制文件和所有数据文件的头部

3.重做日志如何工作?

1)重做日志以循环的方式使用
2)当一个重做日志文件写满,LGWR进程将移动到下一日志组
a.这一步骤叫做log switch
b.checkpoint在此时发生
c.信息被写入控制文件中
3)以下情况将触发LGWR进程写操作:
a.当commit事务发生
b.当redo log buffer存储达到1/3
c.当重做日志缓冲区有超过一个兆字节的更改记录
d.在DBWn将buffer cache修改过的数据块的信息写入到数据文件之前

4) 以下情况发生check point:
a.每次日志切换时
b.实例通过normal,transactional,immediate选项关闭时
c.通过设置初始化参数FAST_START_MTTR_TARGET强制发生
d.数据库管理员手工设置ALTER SYSTEM CHECKPOINT、alter tablespace ,datafile offline
e.使用alter tablespace[OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] 语句导致指定数据文件发生检查点

注:如果参数LOG_CHECKPOINTS_TO_ALERT 设置为true,则每次检查点信息将记录在alert_SID.log文件中.

4.如何增加、删除重做日志文件(组)?

a.增加重做日志文件组:
ALTER DATABASE ADD LOGFILE GROUP 3 ('$HOME/ORADATA/u01/log3a.rdo',
 '$HOME/ORADATA/u02/log3b.rdo') SIZE 1M;

b.增加重做日志文件:
ALTER DATABASE ADD LOGFILE MEMBER
'$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1,
'$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,
'$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3;

c.删除重做日志文件组:
ALTER DATABASE DROP LOGFILE GROUP 3;

d.删除重做日志文件:
ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';

5.清理,重新分布或重命名重做日志文件?

a.清理重做日志文件
ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo';

b.重新分布或重命名重做日志文件
通过删除旧日志文件,新增新日志文件实现。


6.如何获取oracle数据库日志组和成员信息?
△V$LOG
△V$LOGFILE

从控制文件获取重做日志文件信息:
SELECT group#, sequence#, bytes, members, status 
FROM v$log;

 

 

 

原文地址:http://blog.csdn.net/indexman/article/details/7746948