pasting information from a website...better explained here...
A Checkpoint is a database event which synchronizes the modifies data blocks in memory with the datafiles on disk. It offers Oracle the
means for ensuring the consistency of data modified by transactions. The mechanism of writing modified blocks on disk in Oracle is not synchronized with the commit of the corresponding transactions.
A checkpoint has two purposes:
(1) to establish data consistency, and
(2) enable faster database recovery. How is recovery faster? Because all database changes up to the checkpoint have been recorded in the datafiles, making it unnecessary to apply redo log entries prior to the checkpoint. The checkpoint must ensure that all the modified
buffers in the cache are really written to the corresponding datafiles to avoid the loss of data which may occur with a crash (instance or
disk failure).
Oracle writes the dirty buffers to disk only on certain conditions:
A shadow process must scan more than one-quarter of DB_BLOCK_BUFFER
Every three seconds
When a checkpoint is produced
A checkpoint is realized on five types of events:
At each switch of the redo log files
When the delay for LOG_CHECKPOINT_TIMEOUT is reached.
When the size in bytes corresponding to: (LOG_CHECKPOINT_INTERVAL* size of IO OS blocks)
is written on the current redo log file.
Directly by the ALTER SYSTEM SWITCH LOGFILE command.
Directly with the ALTER SYSTEM CHECKPOINT command
During a checkpoint the following occurs:
The database writer (DBWR) writes all modified database blocks in the buffer cache back to datafiles
Log writer (LGWR) updates both the controlfile and the datafiles to indicate when the last checkpoint occurred (SCN).