In my view it occurs * every 3 second * during log switch depending on parameter value like 1. Fast_start _mttr_target. 2. Fast_start_io_target etc. * database writer write all dirty buffer generated after the last checkpoint. * checkpoint write to only control file except log switch. * during log switch checkpoint write to both control file and data file header.