Open a11dev opened 3 months ago
Is it possible that the log expired and was removed
Thanks for your email.
Yes it might be. For test environment it is not a problem, we can run it again and Seatunnel is able to recover lost sync. Production though, we know log files backup is performed every 30 minutes. is there a workaround to avoid blocks?
Thanks Alessandro
Il lun 8 apr 2024, 14:07 Carl-Zhou-CN @.***> ha scritto:
Is it possible that the log expired and was removed
— Reply to this email directly, view it on GitHub https://github.com/apache/seatunnel/issues/6662#issuecomment-2042577100, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI2V56ZYKYQOMIKVP5SHEMDY4KCBTAVCNFSM6AAAAABF4K3G7OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBSGU3TOMJQGA . You are receiving this because you authored the thread.Message ID: @.***>
Is it possible that the log expired and was removed
This is just one possibility. You can also check if the Oracle archive logs and some settings are configured correctly, as it seems that your incremental phase has not been able to read the data correctly.
I would like to share some other information gathered about this topic. Comparing other orcle cdc connector ( debezium/confluent ref: https://docs.confluent.io/kafka-connectors/oracle-cdc/current/overview.html) . As suspected it happen when the redo log is purged from the system. It is recommended to implement practices such as maintaining archived log files for a period longer than the connector might be deactivated but in my case are purged every 30 mins. Debezium is using the strategy to implement a heartbeat in the connector by setting heartbeat.interval.ms to a positive value. This helps to ensure that the source offsets are advanced regularly, reducing the risk of the redo logs being purged before they are consumed by the connector, but still if the connector is down no hearthbeat will be generated.
I hope this could be useful!
oracle cdc configuration improved with : heartbeat.interval.ms = 10000
Oracle-CDC {
result_table_name = "tab1"
base-url = "jdbc:oracle:thin:user/password@ip:1521/service_name"
source.reader.close.timeout = 120000
username = "user"
password = "password"
database-names = ["DBNAME"]
# real db name DBNAME.domain.local ( it works with DBNAME )
schema-names = ["SCHEMA"]
startup.mode = "INITIAL"
table-names = ["DBNAME.SCHEMA.TABLE1"]
heartbeat.interval.ms = 10000
}
how can I check it from logs?
It should be configured this way debezium { heartbeat.interval.ms = 10000 }
Search before asking
What happened
seatunnel 2.3.4 windows server local environment deployment openjdk version "21.0.2" 2024-01-16 oracle database ( dbaas ) local postgres 3 oracle table - OracleCDC 3 Sink - jdbc
It crash with an ORA-01292 seatunnellog.zip
All logs ( and config example ) attacched.
I can increase log level if necessary.
Might it be related to an automatic backup of redologs? config.zip
SeaTunnel Version
2.3.4
SeaTunnel Config
Running Command
Error Exception
Zeta or Flink or Spark Version
Zeta
Java or Scala Version
openjdk version "21.0.2" 2024-01-16
Screenshots
everything is inside attachements.
Are you willing to submit PR?
Code of Conduct