*
1.redo日志[在线重做日志:online redo log]
oracle日志分为三类:
(1).Alert log files — 警报日志
(2).Trace files — 跟踪日志(用户和进程)
(3).redo log — 重做日志(记录数据库的更改)
redo日志[重做日志]分为:
(1).online Redo log files — 在线重做日志,又称联机重做日志
(2).Archive Redo log files — 归档重做日志,简称归档日志
2.redo日志的组成:[日志文件为循环工作]
(1).日志组至少两个,用于切换
(2).日志文件组的个数由控制文件里的MAXLOGFILES决定
(3).1个日志组至少包含1个组成员,最多由控制文件里的maxlogmembers决定
(4).一个成员对应一个日志文件
(5).LGWR进程并发的往日志组里所有重做日志文件写入相同信息
3.日志文件信息的查看:
(1). v$log:查询在线日志的总体信息
SYS> select * from v$log;
# 注:V$LOG中STATUS的状态值
UNUSED: 从未对该联机日志写入任何内容,一般为新增加联机日志文件或是使用resetlog后的状态
CURRENT:当前重做日志文件,表示该重做日志文件为活动状态,能够被打开和关闭
ACTIVE:处于活动状态,不属于当前日志,崩溃恢复需要该状态,可用于块恢复,可能归档,也可能未归档
CLEARING:表示在执行alter database clear logfile命令后正将该日志重建为一个空日志,重建后状态变为unused
CLEARING_CURRENT:当前日志处于关闭线程的清除状态。如日志某些故障或写入新日志标头时发生I/O错误
INACTIVE:实例恢复不在需要联机重做文件日志组,可能归档也可能未归档
(2).v$logfile:查询在线日志文件信息
SYS> select * from v$logfile;
# 注:V$LOGFILE中STATUS的状态值
INVALID :表明该文件不可访问
STALE :表明文件内容不完全
DELETED : 表明该文件不再使用
NULL :表明文件正在使用
*
4.日志文件的相关操作:
(1).添加日志文件组,并指定大小:
SYS>ALTER DATABASE ADD LOGFILE ‘/u01/app/oracle/oradata/orcl/redo04.log’ SIZE 1M;
(2).添加组成员到日志文件组:[这里不需要指定大小,组里的所有日志文件拥有相同的大小]
SYS>ALTER DATABASE ADD LOGFILE MEMBER ‘/u01/app/oracle/oradata/orcl/redo04-1.log’ TO GROUP 4;
(3).删除日志组:[日志文件还需手动删除]
SYS>ALTER DATABASE DROP LOGFILE GROUP 4; # 删除4号日志组
# 注意:当前日志组不能删,活动的日志组不能删,没有归档的日志组不能删。
(4).删除日志组成员:[日志文件还需手动删除]
SYS>ALTER DATABASE DROP LOGFILE MEMBER ‘/u01/app/oracle/oradata/orcl/redo04-1.log’;
# 注意:每个组至少要保留一个成员;
(5).格式化日志文件[清空日志文件]:
SYS>alter database clear logfile group 2; # 清除日志组2里文件的数据
SYS>ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2; # 清除没有归档的日志组2文件的数据
SYS>ALTER DATABASE CLEAR LOGFILE ‘/u01/app/oracle/oradata/orcl/redo04-1.log’; # 清除指定日志文件的数据
(6).重命名日志文件:[原来的日志文件在修改成功后,需手动删除]
a.关闭数据库
b.复制日志文件到一个新的地方
c.数据库启动到mount模式
d.重命名日志文件:
SYS>ALTER DATABASE RENAME FILE ‘/u01/app/oracle/oradata/orcl/redo04.log’ TO ‘/u01/app/oracle/redo7.log’;
e.打开数据库:
(7).手动日志切换:
SYS>ALTER SYSTEM SWITCH LOGFILE;
# 注:日志切换就是停止写当前组,转而写一个新组,系统可以自动发生,也可以手工完成
(8).手动生成checkpoint:[触发:脏数据写入磁盘]
SYS>ALTER SYSTEM CHECKPOINT;
# 注:除了手动切换,还可以通过一些参数来控制checkpoint:[ FAST_START_MTTR_TARGET(MTTR:数据恢复的时间间隔) ]
SYS> show parameter FAST_START_MTTR_TARGET
# 注: FAST_START_MTTR_TARGET(数据库通过它来改变后面3个参数),
【 fast_start_io_target,log_checkpoint_interval,log_checkpoint_timeout 】
(9).通过 OMF 管理 REDO LOG 文件[自动管理]
SYS> SHOW PARAEMTERS DB_CREATE_ONLINE
SYS> ALTER SYSTEM SET DB_CREATE_ONLINE_LOG_DEST_1='/ORACLE/ORALOG/OMF';
SYS> ALTER DATABASE ADD LOGFILE GROUP 6;(名子由 ORACLE 派生,大小100M)
SYS> ALTER DATABASE DROP LOGFILE GROUP 6;(自己删除)
Author: Michael