首页 > 解决方案 > 没有为捕获的表 ORCLLCDB.ROOT.TEST 注册元数据

问题描述

在 TEST 表上插入某些内容后,会发生此错误。

[2020-02-15 15:20:03,996] ERROR Producer failure (io.debezium.pipeline.ErrorHandler:36)
**java.lang.IllegalArgumentException: No metadata registered for captured table ORCLCDB.ROOT.TEST**
    at io.debezium.pipeline.EventDispatcher.errorOnMissingSchema(EventDispatcher.java:168)
    at io.debezium.pipeline.EventDispatcher.dispatchDataChangeEvent(EventDispatcher.java:138)
    at io.debezium.connector.oracle.LcrEventHandler.dispatchDataChangeEvent(LcrEventHandler.java:102)
    at io.debezium.connector.oracle.LcrEventHandler.processLCR(LcrEventHandler.java:76)
    at oracle.streams.XStreamOut.XStreamOutReceiveLCRCallbackNative(Native Method)
    at oracle.streams.XStreamOut.receiveLCRCallback(XStreamOut.java:465)
    at io.debezium.connector.oracle.OracleStreamingChangeEventSource.execute(OracleStreamingChangeEventSource.java:74)
    at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:99)
    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:748)

连接器-oracle-source.properties:

name=oracle-connector
connector.class=io.debezium.connector.oracle.OracleConnector
tasks.max=1
database.hostname=192.168.6.36
database.port=1521
database.user=c##xstrm
database.password=xs
database.server.name=osTomates
database.out.server.name=teucude4
database.dbname=ORCLCDB
#database.pdb.name=ORCLPDB1
database.history.kafka.bootstrap.servers=192.168.6.36:9092
database.history.kafka.topic=test

如果您需要更多信息,请告诉我?

Oracle 19 版本单机配置

标签: oracleapache-kafkaapache-kafka-connectdebezium

解决方案


用户 c##xstrm 应该获得查看 root.test 表的权限(在我的情况下)。

GRANT SELECT ON root.test TO c##xstrm;

这解决了我的问题。

如果接下来您在重新启动 kafka 连接后收到此错误 ORA-31603,这对我有用:

将 select_catalog_role 授予 c##xstrm;

希望这可以帮助那里的人。


推荐阅读