alter system switch logfile 的作用是什么?
答:手动切换日志组
日志组A:当前正在写
日志组B:可写
手动切换日志组后,Oracle开始往日志组B里写日志,并进行一次checkpoint,把日志组A里没有经过checkpoint的那部分日志对应的dirty buffer从buffer cache里写到数据文件里。
checkpoint完成之后
日志组A:可写
日志组B:当前正在写
多个日志组是循环使用的,一般是前面一个日志组写满了,就开始用下一个日志组。最后一组写满了,又回过来写第一个日志组。
alter system switch logfile 是用手工的方式,让Oracle 直接使用下一个日志组,而不管当前使用的日志组是否写满。
在强制切换日志以后,还需要强制切换检查点.
ALTER SYSTEM CHECKPOINT;
这一步应该是必须的吧?~
在日志切换时 checkpoint 是自动引发的。
在做冷备份时要保存redo logs,所以要确保redo log和data file 和 control file 的 SCN 一致,最好手动切换一下redo log。
由 checkpoint 更新redo log、data file、controle file中的SCN