ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于log switch 和checkpoint的理解

关于log switch 和checkpoint的理解

原创 Linux操作系统 作者:lunar2000 时间:2002-06-19 01:38:57 0 删除 编辑
当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的性能。

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

请登录后发表评论 登录
全部评论

注册时间:2008-09-27

  • 博文量
    33
  • 访问量
    77937