开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC里怎么解决?

Flink CDC里2024-01-11 19:31:42
com.ververica.cdc.connectors.shaded.org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:50)
at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:116)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: io.debezium.DebeziumException: io.debezium.DebeziumException: Failed to resolve snapshot offset
at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:85)
at io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:155)
at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:137)
at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:109)
... 5 more
Caused by: io.debezium.DebeziumException: Failed to resolve snapshot offset
at io.debezium.connector.oracle.logminer.LogMinerAdapter.getPendingTransactionsFromLogs(LogMinerAdapter.java:387)
at io.debezium.connector.oracle.logminer.LogMinerAdapter.determineSnapshotOffset(LogMinerAdapter.java:263)
at io.debezium.connector.oracle.logminer.LogMinerAdapter.determineSnapshotOffset(LogMinerAdapter.java:158)
at io.debezium.connector.oracle.OracleSnapshotChangeEventSource.determineSnapshotOffset(OracleSnapshotChangeEventSource.java:143)
at io.debezium.connector.oracle.OracleSnapshotChangeEventSource.determineSnapshotOffset(OracleSnapshotChangeEventSource.java:38)
at io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:113)
at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:76)
... 8 more
Suppressed: java.sql.SQLException: Metadata error: no member instances for service
at oracle.jdbc.driver.HAManager.dropConnection(HAManager.java:284)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:2253)
at io.debezium.jdbc.JdbcConnection.lambda$doClose$4(JdbcConnection.java:961)
... 4 more
Caused by: java.sql.SQLException: ORA-16331: container "PDB1" is not open
ORA-06512: at "SYS.DBMS_LOGMNR", line 58
ORA-06512: at line 1

at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:229)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:41)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:928)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1205)
at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1823)
at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1778)
at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:303)
at io.debezium.jdbc.JdbcConnection.executeWithoutCommitting(JdbcConnection.java:1446)
at io.debezium.connector.oracle.logminer.LogMinerAdapter.startSession(LogMinerAdapter.java:304)
at io.debezium.connector.oracle.logminer.LogMinerAdapter.getPendingTransactionsFromLogs(LogMinerAdapter.java:361)
... 14 more

Caused by: Error : 16331, Position : 0, Sql = BEGIN sys.dbms_logmnr.start_logmnr(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.NO_ROWID_IN_STMT);END;, OriginalSql = BEGIN sys.dbms_logmnr.start_logmnr(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.NO_ROWID_IN_STMT);END;, Error Msg = ORA-16331: container "PDB1" is not open
ORA-06512: at "SYS.DBMS_LOGMNR", line 58
ORA-06512: at line 1

at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
... 29 more

有大佬遇到过这个问题么?oracle 12c flink-cdc 2.4.0

展开
收起
小小鹿鹿鹿 2024-01-18 07:44:59 51 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题是由于Oracle数据库的PDB(可移植数据库)容器没有打开导致的。你可以尝试以下方法解决这个问题:

    1. 确保PDB容器已经打开。你可以使用以下SQL命令来检查PDB容器的状态:
    SELECT open_mode FROM v$pdbs WHERE name = 'PDB1';
    

    如果返回的状态不是MOUNTED,你需要手动打开PDB容器。可以使用以下命令来打开PDB容器:

    ALTER PLUGGABLE DATABASE PDB1 MOUNT;
    
    1. 在Flink CDC配置中,确保使用了正确的PDB名称。你可以在Flink CDC配置文件中设置database.hostnamedatabase.portdatabase.service-name等参数,以连接到正确的PDB。例如:
    database.hostname: <your_host>
    database.port: <your_port>
    database.service-name: <your_pdb_service_name>
    
    1. 如果问题仍然存在,尝试重启Oracle数据库实例,然后再次运行Flink CDC。
    2024-01-19 15:02:32
    赞同 展开评论 打赏
  • 把PDB1开启,alter session set container=pdb1;
    alter pluggable database pdb1 open;此回答来自钉群Flink CDC 社区。

    2024-01-18 11:03:50
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载