1、redo (重做) log 的功能:数据recover
2、redo log 特征:
1)记录数据块的变化(DML、DDL)
2) 用于数据块的recover
3)以组的方式管理redo file ,最少两组redo ,循环使用
4)和 存放到不同的磁盘上,需读写速度快的磁盘(比如采用RAID10)
3、日志切换
1)归档模式:将历史日志进行保存
2)非归档: 历史日志被覆盖
3)并产生checkpoint,通知redo log 所对应的 dirty block 从data buffer写入到datafile,并且更新
4、与日志相关的的数据字典
V$LOG  查看日志信息(从控制文件读取)
V$LOGFILE 查看日志存放的位置
FAST_START_MTTR_TARGET  控制检查点出现的时间,不能设置的太短
ALTER  SYSTEM  SWITH  LOGFILE; 产生增量检查点
ALTER  SYSTEM  CHECKPONIT;产生完全检查点,所有的脏块都写入数据文件
5、查看日志信息
SQL> select * from v$log;
GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1          1          6   10485760          2 NO  INACTIVE                357157 01-AUG-11
3          1          0   10485760          2 YES UNUSED                       0
2          1          7   10485760          2 NO  CURRENT                 381102 02-AUG-11
04:40:19 SQL> alter system switch logfile;
System altered.
04:40:42 SQL> /
System altered.
04:40:43 SQL> select * from v$log;
GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1          1          9   10485760          2 NO  CURRENT                 384007 02-AUG-11
3          1          8   10485760          2 NO  ACTIVE                  384005 02-AUG-11
2          1          7   10485760          2 NO  ACTIVE                  381102 02-AUG-11
(1)日志组的status:
unused:新添加的日志组,还没有使用
inactive:日志组对应的脏块已经从data buffer写入到data file ,可以删除
active:日志组对应的脏块还没有从data buffer写入到data file,不能被删除,否则会引起数据丢失
current :当前日志组,日志组对应的脏块还没有从data buffer写入到data file,不能被删除
在删除日志组之前,进行日志手工切换,将被删除的日志切换到inactive状态,这样就不会引起数据丢失。
thread :线程(通过 lgwr 启动),在单实例的环境下,thread# 永远是1
sequence :日志 号。在日志切换时会递增。
FIRST_CHANGE# :在当前日志中记录的首个数据块的scn。(当事务完成的时候会在数据块上写入一个scn,代表数据块的变化)。
ARC:是否归档模式
log_checkpoints_to_alter:该值默认为false,将其设置为true,每生成一个检查点就会在alter告警日志记录信息
(2)日志文件的status:
valid  有效状态
invalid  当数据库未使用改组文件时,就是无效状态
stale     当数据库怀疑日志文件没完成或者不正确时,日志文件为不新鲜状态,当该日志组变为active group 时,stale日志文件会变为valid状态
(3)查看生成的日志量
14:51:12 SQL> insert into scott.emp1 select * from scott.emp1;
28 rows created.
14:51:33 SQL> insert into scott.emp1 select * from scott.emp1;
56 rows created.
14:51:35 SQL> select a.name,b.value from v$statname a,v$mystat b
14:51:39   2  where b.statistic#=a.statistic# and a.name like '%redo size%'; 
--通过联合查询视图 v$statname ,v$mystat可以查看日志生成量
NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                              4544