The critical symptom
ERROR: SCN not found / ORA-01292
This error means the connector's last recorded System Change Number (SCN) no longer exists in the available redo or archive logs. The database's retention policy purged them before Debezium could read them.
The target window
Size redo logs so they switch approximately every 15 to 30 minutes under typical high-load conditions.
That is 2 to 4 log switches per hour. Community best practice: at least 5 log groups at 400MB each.
Interactive risk analyzer
Adjust the slider to simulate your database's log generation rate and see the processing window available to Debezium.
Optimal / Safe Zone
You have 15.0 minutes to process a redo log before the next switch. Debezium has a comfortable buffer to read data and write to Kafka.
Minutes available per log switch. Amber lines mark the 15–30 min target window.
Oracle database configuration
For a high-volume OLTP database, set each redo log file to at least 400MB to achieve the 15 to 30 minute switch target. Smaller logs fill quickly and increase switching frequency, reducing the window Debezium has to read them.
With too few log groups, the database stalls waiting for the archiver to copy an active log before it can be reused. Five groups is the community minimum for high-throughput environments. Increase further if archiving is slow or logs fill in under 10 minutes.
If Debezium goes offline for maintenance, it needs archive logs available when it restarts. Without a sufficient retention window, the connector fails with SCN not found on startup. Work with your DBA to configure RMAN retention to cover the longest expected downtime window.
Long-running transactions require undo information to remain available for the connector to reconstruct their full change set. UNDO_RETENTION = 3600 gives Debezium a one-hour window. Increase if your workload includes transactions that run longer than an hour.
Debezium connector configuration
The default logminer adapter buffers uncommitted events in connector memory. The incubating logminer_unbuffered adapter offloads buffering to Oracle's Program Global Area (PGA), reducing connector memory usage. Caution: if a transaction exceeds PGA_AGGREGATE_LIMIT, Oracle rejects the buffer and the connector errors. Best for workloads with many small committed transactions.
Snapshot performance tests show Kafka producer settings have more impact than Debezium internals. Set producer.override.batch.size=1000000, producer.override.linger.ms=500, and producer.override.compression.type=lz4. The larger batch and 500ms linger allow more events per Kafka send call; lz4 reduces network volume.
The online_catalog strategy reads the data dictionary from the database rather than from the redo logs, reducing mining overhead. Use it when schema changes are infrequent. For environments with frequent DDL changes, use redo_log_catalog to ensure DDL is captured correctly.
On databases with infrequent changes, the connector's SCN position can grow stale. When a change finally occurs far ahead of the last-read SCN, the connector may error. A heartbeat query fires a periodic write to keep the SCN advancing. Set heartbeat.interval.ms=300000 and pair it with a heartbeat action query and heartbeat table.