1Z0-031.7 - 1. 管理重做日志文件

重做日志文件的结构体系:

--- Redo Log Files以组的形式组织在一起

--- 每个数据库至少要有2个组

--- 每个组至少要有2个成员,每个成员的大小和内容都完全相同,冗余保证安全

--- 在某个时间点上,只有一个组处于online状态(即数据库现在使用的是这个组)

--- LGWR向当前online组的所有成员同时写入相同的redo log信息

[@more@]

相关参数:

--- DB_CREATE_ONLINE_LOG_DEST_n:指定log file的存储目录

--- LOG_ARCHIVE_DEST_n:指定归档日志的存储目录

--- MAXLOGFILES:指定最多的日志组数目,在create database时用到,其最大值和默认值取决于OS

--- MAXLOGMEMBERS:指定一个组最多有多少成员,在create database时用到

--- FAST_START_MTTR_TARGET:指定数据库进行崩溃恢复需要的秒数,当为0值时表示自动检查点调整生效。这个参数是一个阀值, 系统会监控这个参数当前的实际值, 达到(或者接近)这个目标值的时候, 系统就会触发ckpt 检查点, 触发dbwr来写数据, 以保持checkpoint queue的长度与这个参数的长度一致.。因为当这个参数的值较小的时候, 这个触发就比较频繁, ckpt进程,dbwr进程比较繁忙, 同时系统的恢复时间相对也就可以控制的比较短.

--- FAST_START_IO_TARGET:控制了需要被恢复的数据块数目

--- LOG_CHECKPOINT_TIMEOUT:限制了上一检查点和最近的重做记录之间的秒数,但它对于设置恢复时间限制来说都是不够精确的。

--- LOG_CHECKPOINT_INTERVAL:设定了恢复过程中将要被读的重做记录的数目

--- LOG_CHECKPOINT_TO_ALERT:其值为TRUEFALSE,当为TRUE时,系统发生Log Switch checkpoint时,相关信息被写入alert文件中。

工作原理:

--- 以循环方式(cyclic fashion)工作,请看上面的图

--- 日志切换(Log Switch):当一个日志文件(组)写满时,LGWR将会移到下一个组开始写工作

--- 日志切换时,发生checkpoint,相关infomation会被写到控制文件,并且会更新数据文件的头部信息

--- 当所有日志组都被写满时,如果你的数据库是archive模式,则触发archive进程,实行日志归档;如果你的数据库是noarchive模式,则会直接切到下一个日志,覆盖日志内容重新开始新一轮循环。

强制日志切换:ALTER SYSTEM SWITCH LOGFILE

强制checkpoint

--- 设置参数FAST_START_MTTR_TARGET的值

--- 命令:ALTER SYSTEM CHECKPOINT

Sizing Log File:

--- Minimum size : 50KB

--- Maximum size : depend on the OS

--- 每个组的大小可以不同,但是同个组的每个成员肯定相同

--- 改变大小的方法:create new + remove old

Querying:

V$LOG : 反应日志组的信息

---------------------------------------------------------------

SQL> SELECT * FROM V$LOG;

GROUP#

THREAD#

SEQUENCE#

BYTES

MEMBERS

ARCHIVED

STATUS

FIRST_CHANGE#

FIRST_TIME

1

1

2

52428800

1

NO

INACTIVE

565180

13-5-07

2

1

3

52428800

1

NO

CURRENT

578116

13-5-07

3

1

1

52428800

1

NO

INACTIVE

534907

13-5-07

---------------------------------------------------------------

STATUS的值说明:

UNUSED:表示日志从未使用过,即新日志组

CURRENT:表示当前正在使用该组

ACTIVE:表示活动日志组,即脏缓存块还没有完全写入数据文件

CLEARING:表示该日志组是“正在被”(is being)被clearre-created的,空的内容,在日志组被cleared以后,status就变为UNUSED

CLEARING_CURRENT:显示that the current log file is being cleard of a closed thread. The log can stay in this stay in this status if there is some failure in the switch ,such as an I/O error writing the new log header.

INACTIVE:表示非活动组,即所有信息都已经归档

V$LOGFILE : 反应日志成员的信息

---------------------------------------------------------------

SQL> SELECT * FROM V$LOGFILE;

GROUP#

STATUS

TYPE

MEMBER

IS_RECOVERY_DEST_FILE

3

ONLINE

D:ORACLE_DB_HOMEORADATAORCLREDO03.LOG

NO

2

ONLINE

D:ORACLE_DB_HOMEORADATAORCLREDO02.LOG

NO

1

ONLINE

D:ORACLE_DB_HOMEORADATAORCLREDO01.LOG

NO

1

ONLINE

D:ORACLE_DB_HOMEORADATAORCLREDO01_1.LOG

NO

2

ONLINE

D:ORACLE_DB_HOMEORADATAORCLREDO02_1.LOG

NO

3

ONLINE

D:ORACLE_DB_HOMEORADATAORCLREDO03_1.LOG

NO

---------------------------------------------------------------

STATUS值说明:

INVALID:显示该文件处于不可访问状态

STALE:显示该文件的内容是不完整的(incomplete

DELETED:显示该文件将不再使用(is no longer used

Blank Space:空的内容表示这个文件现在正在使用(in use

归档日志(Archive Log):

--- mount阶段可以改变数据库的归档模式:alter database archivelog/noarchivelog

--- 两种归档方式:1 手动Manually 2 自动Automatically(推荐)

--- 即使在自动归档方式下,dba也可以通过sql命令强制归档一个日志组

--- 参数LOG_ARCHIVE_START显示归档方式是自动(TRUE)或手动(FALSE);TRUE表示ARCn进程当日志写满发生log switch时自动归档写满的日志;FALSE表示需要DBA手工归档要发生log swtich的写满信息的log file

--- 当成功归档后,在控制文件中会记录下列信息:the archive log name, log sequence number (of the just be archived log file), high and low SCN number.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8633028/viewspace-912963/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8633028/viewspace-912963/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值