Why Did Incr‑Sync Stall? Solving Oracle SocketTimeout Errors in OceanBase OMS
A production OceanBase Oracle‑mode database experienced excessive Incr‑Sync delay due to a DDL timeout, and the article walks through log analysis, the oracleSocketTimeout parameter issue, configuration changes, verification steps, and final recommendations to resolve the blockage.
Fault Background
In a production environment, an OceanBase (Oracle mode) database's incremental sync link (DDL + DML) suffered excessive delay, with the Incr‑Sync component's position stuck at 2025-04-29 12:08:25, increasing business risk for sync data read latency.
OMS migration tool page showed continuously growing delay.
Analysis Process
Check connector.log
Inside the Incr‑Sync component container, the log repeatedly attempted to create an index DDL and reported
java.sql.SQLRecoverableException: IO Error: Socket read timed out.
[2025-04-29 14:48:01.395] [WARN] [sinkTask-9] ... java.sql.SQLRecoverableException: IO Error: Socket read timed out ...Check Oracle data volume
The table contains about 34 million rows, so index creation naturally takes time.
Check connector_sink_msg.log
The sink side of OMS Incr‑Sync showed no new DML consumption, stuck around 12:08:30, indicating DML was blocked by the failing DDL.
oracleSocketTimeout parameter issue
The error originates from the JDBC connection between Incr‑Sync and Oracle exceeding the socket timeout. The default oracleSocketTimeout is 50 s; increasing it may resolve the issue.
Investigate OMS documentation about the incr‑sync component and socketTimeout.
The parameter exists; raising it is worth trying.
Modification
Update the Incr‑Sync component's sink module to add oracleSocketTimeout with a value of 1800 s.
Verify parameter effect
After modification, connector.log prints the JDBC URL with the new socketTimeout=1800000 setting.
jdbc:oracle:thin:@//10.19.51.23:1521/zdbrenzy.actionskydba.com?rewriteBatchedStatements=true&GetConnectionTimeout=20000&socketTimeout=1800000Check DDL execution completion
After waiting, msg/ddl_msg.log shows the DDL was successfully consumed and the index was created in Oracle.
1[2025-04-29 15:00:17.560] receive ddl:CREATE INDEX IDX_JYMX_UNIT_STATUS ...The monitoring UI now progresses normally, confirming the issue is resolved.
Root Cause and Conclusion
The immediate cause was repeated DDL execution failures blocking the Incr‑Sync position. The underlying cause was the default oracleSocketTimeout (50 s) being too short for large tables, causing the JDBC connection to drop.
Recommendations:
Add oracleSocketTimeout to Incr‑Sync and include it in operation standards.
Increase the default timeout from 50 s to 600 s (or an appropriate value).
References
[1] Incr‑Sync component: https://www.oceanbase.com/docs/community-oms-cn-1000000003497874
[2] Official article 1: https://www.oceanbase.com/knowledge-base/oms-ee-1000000000253329
[3] Official article 2: https://www.oceanbase.com/docs/enterprise-oms-doc-cn-1000000000613559
Aikesheng Open Source Community
The Aikesheng Open Source Community provides stable, enterprise‑grade MySQL open‑source tools and services, releases a premium open‑source component each year (1024), and continuously operates and maintains them.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
