Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-5907

Oracle cannot undo change

    XMLWordPrintable

Details

    Description

      Bug report

      What Debezium connector do you use and what version?

      Connector: io.debezium.connector.oracle.OracleConnector
      Version: 2.0.0Final

      What is the connector configuration?

      snapshot.locking.mode=shared
      connector.class=io.debezium.connector.oracle.OracleConnector
      consumer.session.timeout.ms=60000
      max.queue.size=16192
      rac.nodes=dbnode-1.our.company.local:1521,dbnode-2.our.company.local:1521
      tasks.max=1
      consumer.max.poll.interval.ms=90000
      log.mining.strategy=redo_log_catalog
      schema.history.internal.store.only.captured.tables.ddl=true
      topic.prefix=datahub
      decimal.handling.mode=double
      schema.history.internal.kafka.topic=schema-changes.lus
      oracle.jdbc.useFetchSizeWithLongColumn=true
      signal.data.collection=PROME.FBILOGMINER.DBZ_SIGNALS
      lob.enabled=false
      snapshot.fetch.size=5000
      database.user=fbilogminer
      database.dbname=PROME
      log.mining.batch.size.max=250000
      database.connection.adapter=logminer
      database.url=jdbc:oracle:thin:@dbnode.our.company.local:1521/PROME.our.company.LOCAL
      time.precision.mode=connect
      database.server.name=PROME
      schema.history.internal.kafka.bootstrap.servers=kafka:9092
      heartbeat.interval.ms=10000
      schema.history.internal.skip.unparseable.ddl=true
      database.password=***********
      log.mining.batch.size.default=50000
      max.batch.size=2048
      table.include.list=FBILOGMINER.DBZ_SIGNALS,LUS.ARTIKELSTAMM,LUS.PRODLINIE,... and +100 more tables
      snapshot.mode=initial
      

      What is the captured database version and mode of depoyment?

      Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
      On-Premise, RAC with two nodes

      What behaviour do you expect?

      Debezium should be able to undo changes without throwing warnings.

      What behaviour do you see?

      The adapter is sporadically throwing warnings like these:

      Cannot undo change 'LogMinerEventRow{scn=13105258959661, tableId='PROME.LUS.ARTIKELSTAMM', tableName='ARTIKELSTAMM', tablespaceName='LUS', eventType=UPDATE, changeTime=2022-12-07T12:34:19Z, transactionId='83000700e7d20400', operation='UPDATE', userName='JOHNDOE', rowId='AAAXgpAAMAAICJIAAE', rollbackFlag=true, rsId= 0x014446.0000a09b.0054 , ssn=0, redoSql='update "LUS"."ARTIKELSTAMM" set "PMARTBEZ" = NULL, "GEAENDERT_AM" = TO_TIMESTAMP('2022-12-07 12:34:16.099607'), "REVISION" = '12';'}' since event with row-id AAAXgpAAMAAICJIAAE was not found.   [io.debezium.connector.oracle.logminer.processor.memory.MemoryLogMinerEventProcessor]
      

      We checked the SCN given in the warning with the following statement:

      SELECT * FROM GV$ARCHIVED_LOG WHERE FIRST_CHANGE# <= 13105258959661AND NEXT_CHANGE# > 13105258959661;
      

      The query returns archive logilfes what shows that the transaction bound to the SCN is still available in our logs:

      +ORA_12_FRA/PROME/ARCHIVELOG/2022_12_07/thread_1_seq_83014.868.1122817775
      +ORA_12_FRA/PROME/ARCHIVELOG/2022_12_07/thread_2_seq_80502.753.1122817995
      +ORA_12_FRA/PROME/ARCHIVELOG/2022_12_07/thread_1_seq_83014.868.1122817775
      +ORA_12_FRA/PROME/ARCHIVELOG/2022_12_07/thread_2_seq_80502.753.1122817995
      

      Do you see the same behaviour using the latest relesead Debezium version?

      We are using 2.0.0Final. 

      Do you have the connector logs, ideally from start till finish?

      Logs can be provided on request. 

      How to reproduce the issue using our tutorial deployment?

      Actually I'm unable to reproduce the error, because this is our prod environment. But in Debeziums Tulip's chat the user Tomoya Deng provided steps to reproduce it:

      You can reporduce the case with these steps:

      insert row1 with value= A
      Begin a transaction
      update row1 with value=B
      savepoint a
      update row1 with value=C
      rollback to savepoint a
      commit

      The quote is from this thread: https://debezium.zulipchat.com/#narrow/stream/302529-users/topic/.E2.9C.94.20Cannot.20undo.20change 
      (Where I also was asked by vjuranek@redhat.com to create this issue.)

      Attachments

        Activity

          People

            ccranfor@redhat.com Chris Cranford
            codebude Raffael Herrmann (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: