https://bestoraclegoldengateonlinetraining.blogspot.com/2016/02/overview-of-checkpoints.html
Checkpoints store the current read and write positions of a
process to disk for recovery purposes. Checkpoints ensure that data changes
that are marked for synchronization actually are captured by Extract and
applied to the target by Replicat, and they prevent redundant processing. They
provide fault tolerance by preventing the loss of data should the system, the
network, or an Oracle GoldenGate process need to be restarted. For complex
synchronization configurations, checkpoints enable multiple Extract or Replicat
processes to read from the same set of trails.
Checkpoints work with inter-process acknowledgments to prevent
messages from being lost in the network. Oracle GoldenGate has a proprietary
guaranteed-message delivery technology.
Extract creates checkpoints for its positions in the data source
and in the trail. Because Extract only captures committed transactions, it
keeps track of the operations in all open transactions, in the event that any
of them are committed. This requires Extract to record a checkpoint where it is
currently reading in a transaction log, plus the position of the start of the
oldest open transaction, which can be in the current or any preceding log.
To control the amount of transaction log that must be
re-processed after an outage in an Oracle database, Extract also persists the
current state and data of processing to disk at specific intervals, including
the state and data (if any) of long-running transactions. If Extract stops
after one of these intervals, it can recover from a position within the
previous interval or at the last checkpoint, instead of having to return to the
log position where the oldest open long-running transaction first appeared.
Replicat creates checkpoints for its position in the trail.
Replicat stores these checkpoints in a table, known as the checkpoint table, in the
target database and also in a checkpoint file on disk. The checkpoint table is
stored with a user-specified name and location. The checkpoint file is stored
in the dirchk
sub-directory
of the Oracle GoldenGate directory.
At the completion of each transaction, Replicat writes
information about that transaction to a row in the checkpoint table, linking
the transaction with a unique position in a specific trail file. Replicat also
writes a checkpoint to the checkpoint file when it completes a transaction. At regular
intervals, Replicat also writes its current read position to the checkpoint
file. These positions are typically not at a transaction boundary, but at some
point within a transaction. The interval length is controlled by the checkpointssecs parameter.

Because the checkpoint table is part of the database, and
benefits from the database recovery system, it provides a more efficient
recovery point for Replicat. The last checkpoint in the checkpoint file may not
be the most recent transaction boundary. It could be the middle of a
transaction not yet applied by Replicat or an earlier transaction that was
already applied. The checkpoint table ensures that Replicat starts at the
correct transaction boundary, so that each transaction is applied only once. The
information in the checkpoint table can be used for recovery in some cases, but
is primarily used for purposes, such as for the INFO
commands
in GGSCI.
Regular backups of the Oracle GoldenGate environment, including
the trails, should match your database backup, recovery, and retention
policies. Restoring the database (and with it the checkpoint table) to an
earlier period of time causes Replicat to reposition to an earlier checkpoint
that matches that time. If the required trail files for this time period are
already aged off the system, they must be restored from backup.
Checkpoints are not required for non-continuous
types of configurations, such as a batch load or initial load. If there is a
failure, these processes can be started again from the original start point.