日志文件切换

本文主要翻译自Jonathan Lewis的Blog Entry Log File Switch, 最后关于checkpoint部分,我添加了部分我自己的注释(以斜体字显示).

日志文件切换

几天前,我发布一个简单的查询语句,它通过查询v$log_history视图展示日志文件切换之间的时间间隔.如果你运行这个脚本,并且认为你的系统的日志文件切换频率不合适,那么你该如何处理呢?
如果时间间隔太短(由于日志文件频繁切换引发的checkpoint动作可能会导致DBWR进程过于活跃),可以通过新增新的更大的日志文件并删除旧的日志文件来解决.
如果切换的时间间隔太久,或者是时间间隔波动太大,而你希望使日志切换更加有规律,那么可以使用参数archive_lag_target(在Oracle 9i中引入)来为日志文件切换设置一个超时值(单位为秒).如果日志文件没有在指定的时间间隔内发生切换,那么系统会强制其切换日志,并且归档对应的已经使用的在线重做日志.
在此之前,人们一般使用类似于cron或者dbms_job一类的工具来实现(通过执行一条”alter system switch logfile“命令).从Oracle 9i开始,利用这个参数来实现就简单多了.

附录

  • Instance Recovery Checkpoint
  • 实例恢复触发的检查点

  • Media Recovery Checkpoint
  • 介质恢复触发的检查点

  • Thread Checkpoint
  • 单个instance关闭以及log file switch触发的检查点

  • Interval Checkpoint
  • log_checkpoint_timeout参数超时触发的检查点

  • Tablespace Checkpoint
  • 表空间online/offline/read only/read write操作对应的检查点

  • PQ Tablespace Checkpoint
  • 不清楚具体原因

  • Close Database Checkpoint
  • Incremental Checkpoint
  • 常规的检查点动作

  • Local Database Checkpoint
  • 对应于alter system checkpoint

  • Global Database Checkpoint
  • 对应于alter system checkpoint all命令的检查点.

  • Object Reuse Checkpoint
  • 对应于truncate table操作的检查点

  • Object Checkpoint
  • 对应于drop table的检查点操作

Oracle支持多种不同类型的checkpoint,这个列表会随着Oracle版本的不同而有所不同.Oracle 10.2.0.3的对应的checkpoint看似有如下这些:
在这些中间,我认为日志文件切换时引发的checkpoint可能是ThreadCheckpoint.

No related posts.

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>