I really wouldn't classify Oracle as having different types of checkpoints. Basically, there is one type of checkpoint. The purpose of the checkpoint is to write committed changes to the database datafiles. When a user commits data, the transaction is written to the online redo log, but the database datafiles that will hold that changed data are not written to at COMMIT. Modifying the datafiles on every COMMIT is too costly in terms of performance. So Oracle will hold off until a checkpoint is reached. But one need not worry that the transaction will be lost in case of server failure as a COMMIT does force the transaction information to be written to the online redo log files.
There are multiple reasons why a checkpoint might be performed. A checkpoint is performed every time an online redo log is switched to a new group. This can happen when a group is full and Oracle needs to write to the next group. Or, this can happen when the DBA issues the ALTER SYSTEM SWITCH LOGFILE command. A checkpoint is also performed every three seconds. The DBA has defined the LOG_CHECKPOINT_INTERVAL, LOG_CHECKPOINT_TIMEOUT or FAST_START_MTTR_TARGET parameters which can force checkpointing to occur more often.
This document describes checkpointing in more detail. The document is a bit dated, but most of it still holds.
The RBA is the Redo Byte Address. Basically, it is a pointer to a specific location in the redo logs. You can find a more detailed explanation of RBA here.
This was first published in July 2006