Ogg-01184 Expected 4 Bytes But Got 0 Bytes In Trail
Rarely, external processes opening the trail file in write mode (e.g., a custom script) can corrupt the binary structure, overwriting the 4-byte headers.
Review OS logs (/var/log/messages or dmesg). Look for "No space left on device" around the timestamp of the first OGG-01184 error.
Restart the replicat once to confirm it’s not a transient I/O glitch:
ggsci> START REPLICAT rep01
If it abends immediately with the same RBA, the corruption is real. ogg-01184 expected 4 bytes but got 0 bytes in trail
From a safe RBA before the corruption (e.g., RBA 4819000), step forward record by record:
logdump> pos 4819000
logdump> n
logdump> n
logdump> n
Observe the last good record before 4820192. Is there a gigantic transaction? A LOB update? A BLOB? Large transactions are often culprits because they span multiple trail blocks.
From the GoldenGate Command Interface (GGSCI): Rarely, external processes opening the trail file in
GGSCI> SEND REPLICAT <rep_name> STATS
GGSCI> INFO REPLICAT <rep_name>, DETAIL
GGSCI> SEND REPLICAT <rep_name> GETPOS
For the trail file directly:
GGSCI> FILEVIEW /ggs/dirdat/mt000001
FILEVIEW shows the raw trail file content in hex and ASCII. If at a certain position you see 0000 0000 where a non-zero length is expected, the file is corrupted.
If the above fails:
The error message OGG-01184: Expected 4 bytes but got 0 bytes in trail is the Oracle GoldenGate equivalent of a "sudden death" notification. It is a low-level I/O error that indicates the Extract process reached the end of a trail file expecting to find a complete record header (4 bytes) but found nothing but empty air.
Here is a deep technical narrative regarding this error, structured as a forensic investigation.
Set a reasonable maximum file size in Extract parameters: Provide two configurable recovery modes:
EXTTRAIL /path/to/trail, MAXFILESIZE 100M
This reduces the impact of corruption to a single smaller file.