作用:数据 recovery恢复
特征:
记录数据库中块的变化(DML、DDL)用于数据块的 recover以组的方式管理 redo file,最少两组 redo,循环使用和数据文件存放到不同的磁盘上,需读写速度快的磁盘(采用 RAID10)日志的 block 和数据文件的 block 不一样THREAD#: 线程在单实例的环境下,thread# 永远是 1 SEQUENCE# 日志序列号。在日志切换时会递增 FIRST_CHANGE# 在每个日志组对应一个sequence 号,其中一条日志条目的第一个的 scn。
查看当前日志信息
select group#,sequence#,bytes/1024/1024 M,archived,status from v$log; select * from v$logfile;添加日志组
alter database add logfile group 4 '/u01/app/oracle/oradata/oradb/redo04.log' size 50m; select * from v$logfile;查看日志状态
select group#,sequence#,bytes/1024/1024 M,archived,status from v$log为每个组增加一个member(一共是4个组) 先建好目录,准备放在/u01/app/oracle/oradata/log_member1 下
[oracle@vm01 ~]$ mkdir -p /u01/app/oracle/oradata/log_member1为group 1 添加成员文件
SQL> alter database add logfile member ‘/u01/app/oracle/oradata/log_member1/redo01.log’ to group 1;TATUS 是 INVALID,说明 member 还没有同步好。
SQL> alter system switch logfile; 至少做 4 次切换,消除 invalid。 SQL> alter system switch logfile; SQL> alter system switch logfile; SQL> alter system switch logfile; SQL> alter system switch logfile; SQL> select * from v$logfile; SQL> select group#,sequence#,members ,bytes /1024/1024 M,archived,s tatus from v$log;一添加两个成员文件
alter database add logfile group 5 ('/u01/app/oracle/oradata/oradb/redo05.log', ‘/u01/app/oracle/oradata/log_member1/redo05.log') size 50M;当前current状态日志组,尝试删组成员报错
SQL > alter database drop logfile member '/u01/app/oracle/oradata/oradb/redo01.log';发起检查点,并查看日志情况
alter system checkpoint; SQL > select group#,status from v$log;尝试删除成员文件
alter database drop logfile member '/u01/app/oracle/oradata/oradb/redo01.log'; 添加组成员文件 sql alter database drop logfile member ‘/u01/app/oracle/oradata/log_member1/redo01.log’;原来的 redo01.log 可以删掉,drop logfile group 没有删除物理磁盘上文件,需手动删除
关库
SQL > shutdown immediate;重命名文件
mv /u01/app/oracle/oradata/oradb/redo02.log /u01/app/oracle/oradata/log_member1/redo02.log数据库启动到mount
SQL > startup mount; SQL > select group#,member from v$logfile order by 1;通知控制文件
SQL > alter database rename file ‘/u01/app/oracle/oradata/oradb/redo02.log’ to '/u01/app/ oracle/oradata/log_member1/redo02.log';打开数据库
alter database open;删除日志组
SQL> alter database drop logfile group 5; SQL> select group#,status,archived from v$log;drop logfile group 不会删磁盘上文件,删除物理文件需要rm