By default, the way in which trail files are copied from the source to the target hosts is by transferring small packets of data before the trail file write on the target host is issued.

Confirmation that that data has successfully been written to disk (using fsync on Linux) does not occur very frequently, which in the event of a role transition opens up the possibility of the trail file getting out of sync with a checkpoint from one or more Replicat processes.

To reduce occurrences, the Ddata pump must be configured with the following parameters:

RMTHOST , MGRPORT , PARAMS -f -B1048576, TCPBUFSIZE 1048576, TCPFLUSHBYTES 1048576#

The TCPBUFSIZE and TCPFLUSHBYTES combination of parameters increases the transfer buffer between the source and target to 1MB, with the server/collector process on the target issuing a write for every 1MB (-B write buffer size parameter) received, followed directly with a write confirmation (-f flush and sync).

This works in 11.2.0.19

And

After a Data Guard failover, if the Replicat fails to start due to an error with the checkpoint being larger than the trail file (OGG-01705) do the following to restart the Replicat:

Example error:

2014-05-16 11:44:04 ERROR OGG-01705 Input checkpoint position 388369723 for input trail file ‘/u01/goldengate/dirdat_os/bb000028′ is greater than the size of the file (387583957). Please consult Oracle Knowledge Management Doc ID 1138409.1. for instructions.

If using Oracle GoldenGate version 11.2.1.0.7 or later AND the Replicat is using a checkpoint table, the process can be restarted with:

GGSCI> START REPLICAT FILTERDUPTRANSACTIONS

This only works with Oracle GoldenGate v11.2.1.0.7 and later, and when a checkpoint table is used.

Refer to My Oracle Support note 1536741.1 for more detailed process restart instructions.