关于log switch 和checkpoint的理解

当LGWR停止写一个log group而去写另一个log group时,我们说就产生了一个log switch。
Log switch 和checkpoint都是自动产生的,比如说在写log group 时会自动产生。当然,我们可以使用ALTER SYSTEM SWITCH LOGFILE和ALTER SYSTEM CHECKPOINT手工的产生log switch 和checkpoint。

考虑Redo log file的大小时,我们主要考虑:
1.        redo 操作的数量
2.        redo log switch和checkpoint的频率
3.        存储介质的限制

当事务量巨大时,我们会考虑使用较大的redo log files,此时为了保证数据库的可靠性,我们往往会需要额外的产生checkpoint,这是,我们就会在initSID.ora中定义影响checkpoint产生的三个参数:
1.        LOG_CHECKPOINT_INTERVAL:
在oracle 8.1以前,每当LGWR写够了LOG_CHECKPOINT_INTERVAL指定的blocks的数量,就会产生一个checkpoint,如果不设置这个值,checkpoint只会在log switch时产生。
在oracle 8.1以后,不会在redo log file中的每隔写了(这个参数指定的)blocks之后的位置写一个检查点(即,在达到这个blocks之前写一个checkpoint)。所以,checkpoint的产生不会大于这个参数指定的值,从而也确定了,在instance recovery时,每次读redo block的数量不会比这个数量大。

2.        LOG_CHECKPOINT_TIMEOUT:
在oracle 8.1以前,这个参数指定了两个checkpoint之间的时间间隔(以秒为单位),如果将这个参数指定为0,则表示checkpoint不采用基于时间的产生。
在oracle 8.1以后,会在redo log file中的每个(这个参数指定的)时间间隔之后的位置写一个检查点,从而保证了在instance recovery时,每次读redo blocks的时间不会超过这个参数指定的值。

3.        FAST_START_IO_TARGET:
如果把这个值设置的比较小,DBWR就会频繁的写dirty buffers,所以,在恢复时会需要相对较少的blocks,从而提高了instance recovery的性能。
29.gif

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

转载于:http://blog.itpub.net/747/viewspace-483416/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值