log online oracle_oracle 在线重做日志(online redo log)

*

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

你可能感兴趣的:(log,online,oracle)