Ogg-01184 Expected 4 Bytes But Got 0 Bytes In Trail May 2026
This article provides a complete, step-by-step guide to diagnosing, fixing, and preventing the OGG-01184 error. We will cover everything from basic concepts to advanced surgical recovery techniques. What is a GoldenGate Trail File? Before fixing the error, you must understand what GoldenGate is trying to read. A trail file (e.g., dirdat/rt000001 ) is a binary sequence of records. Each record represents a database operation (INSERT, UPDATE, DELETE, DDL). The structure is:
Introduction: The Silent Corruption of Transaction Logs If you are reading this, you have likely just encountered a nightmare scenario for any data replication engineer. Your Oracle GoldenGate (OGG) Replicat process has aborted with the cryptic message: ogg-01184 expected 4 bytes but got 0 bytes in trail
Alter Replicat to start at the last good RBA before corruption: This article provides a complete, step-by-step guide to
2025-01-15 10:23:45 ERROR OGG-01184 Oracle GoldenGate Delivery for Oracle, rep01.prm: Expected 4 bytes but got 0 bytes in trail file /u01/gg/dirdat/rt000012, at RBA 4820192. 2025-01-15 10:23:45 ERROR OGG-01668 PROCESS ABENDING. The 4820192 is critical—it tells you exactly where in the trail file the corruption begins. Part 2: Immediate Diagnosis (Do Not Panic) When you see this error, follow these diagnostic steps before attempting any fix. Step 1: Verify the Error is Consistent Restart the replicat once to confirm it’s not a transient I/O glitch: Before fixing the error, you must understand what
ggsci> START REPLICAT rep01 If it abends immediately with the same RBA, the corruption is real. From the error message:
ADD EXTRACT ext01, TRANLOG, BEGIN SCN 123456789 Recreate Pump and Replicat, start fresh. Part 4: Preventing OGG-01184 Before It Happens The best fix is never encountering this error. Implement these hardened practices. 1. Enable Trail File Checksums Add this to both Extract and Replicat parameter files:
#!/bin/bash for trail in /u01/gg/dirdat/rt*; do echo "checking $trail" echo "open $trail" > /tmp/logdump_cmd echo "n" >> /tmp/logdump_cmd echo "q" >> /tmp/logdump_cmd /u01/gg/logdump < /tmp/logdump_cmd | grep -i "error\|corrupt\|unexpected" done Scenario: A large financial firm replicates a 10TB Oracle database. One night, a backup job fills the /goldengate filesystem to 100%. The Extract continues writing but fails to complete the last record in rt000241 .