调优日志切换(TuningLogSwitches)

文章作者 100test 发表时间 2007:10:31 12:31:12
来源 100Test.Com百考试题网


调优日志切换(Tuning Log Switches)

日志切换:LGWR进程停止写日志到当前日志文件,关闭日志文件,打开新的日志文件并写日志缓存中的数据到新的日志文件。

日志切换可以命令ALTER SYSTEM SWITCH LOGFILE或者ALTER SYSTEM ARCHIVE LOG来手工执行,也可以通过设置参数LOG_ARCHIVE_START使其自动执行。一般的原因是一个进程不能将生成的重做日志从缓存中写到当前的日志文件,因为已经使用到当前日志文件的最后一个数据块。

日志切换时做到的相关的步骤顺序:

1、 执行一个控制文件事务来选择下一个日志文件以使用并清除控制文件入口。一般是选择当前带有最小日志序列号的日志文件来作为下一个使用,在这一步上,如果有必要,日志切换将会等待DBWR进程完全前面一个日志文件的日志切换的CHECKPOINT,等待ARCn进程完成归档。

2、 使用redo copy latches和redo generation latches两个latch来阻止重做日志在日志缓存中生成(标记日志缓存状态),并将日志缓存中的数据写到日志文件(磁盘)中。如有可能用并行的方式,会同时将文件中最后一个记录的SCN号写到头数据块中(header block)。在这些“写”操作都完成之后LGWR进程关闭这个日志文件。

3、 提升SCN值执行第二个控制文件事务来将日志文件标记为CURRENT,把之前的日志文件标记为ACTIVE,一旦DBWR进程完成了日志切换的CHECKPOINT后,这个文件的状态(之前的日志文件)会被标记为INACTIVE。如果数据库运行在归档模式下,LGWR进程通过控制文件中日志文件的入口段将这个日志文件(之前的日志文件)添加到归档连接单中,如果启动的是自动归档,LGWR会激活ARCn后台进程将这个日志文件进行归档。如果当前使用的所有ARCn进程都处于忙状态,LGWR会激活一个新的ARCn进程,ARCn进程数由参数log_archive_max_processes。

4、 最后一步,LGWR进程打开新日志文件组的所有成员,并将新的日志序列号和底SCN写到头数据块(header block)。然后将日志缓存状态改为可以生成日志。

日志切换可能会花较长时间,经常是以秒记,日志切换过程有较大的调优潜力。相对于连续的缓慢的性能,OLTP系统的用户一般更难忍受数据库的间断的较差的性能,所以,减少日志切换频率,减少切换间隔时间是非常重要的。

在系统性能方面,日志切换冲突的主要表现在于log file switch completion等待事件上。如果日志切换性能差,另外一个等待事件log buffer space等待也会即刻产生。对日志切换调优就是要先调优log file switch completion等待事件然后是log buffer space等待。

使用大的日志文件:为了最小化日志切换频率,可以加大日志文件的SIZE(尽可能大,最易归档),也要控制CHECKPOINT(如设置参数fast_start_mttr_target)来使数据库恢复性能最优。

每个联机日志文件应该放在专有的磁盘上以免ARCn进程同时进入访问该磁盘。不要使用小的日志文件来保存磁盘空间,因为保存下来的空间不会再被使用(联机日志文件大小确定后是不会再增长的,所以不会用到您所保留下来的这些空间)

增加联机日志文件会提高归档的间隔时间。、

另外一方面,在使用了大的联机日志文件时,要通过调优归档以减少资源使用强度。

保持日志文件是打开状态:调整日志切换的速度最大的调优的潜在地方在于新日志文件成员的打开过程,打开新日志文件是用操作系统的指令open()。如果有其他的一个进程在同一个文件中已经有打开文件的描述符则操作系统调用这个命令来打开新的日志文件的速度是很快的,主要原因是关于文件的一些信息都放在了系统的内核内存中。

相关文章


SQLServer联机丛书:执行存储过程
SQLServer联机丛书:存储过程及其创建
SQLServer联机丛书:删除存储过程
SQLServer联机丛书:查看存储过程
调优日志切换(TuningLogSwitches)
用拼音输入法字典库实现同音字模糊查询
用VisualFoxPro5.0设计数据文件结构浏览器
在VFP5.0中实现中英文自动切换
用VisualFoxpro开发主从结构数据库系统
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛