如何解决Debezium Oracle Connector问题-ORA-26908:XStream API
我当前正在运行Oracle Database 12c企业版12.2.0.1.0
我正在使用以下Docker映像配置Debezium Kafka Connect API:debezium / connect:1.2 使用以下连接器配置:
curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" 192.168.99.100:8083/connectors/ -d '{ "name": "oracle-connector","config": {
"connector.class": "io.debezium.connector.oracle.OracleConnector","tasks.max": "1","database.server.name" : "server1","database.hostname": "IP","database.port": "1521","database.user": "xstrm","database.password": "xs","database.dbname": "DB_NAME","database.out.server.name" : "dbzxout","database.server.id": "SERVER_ID","database.server.name": "Oracle_12_2","table.whitelist": "TABLE_NAME","database.history.kafka.bootstrap.servers": "broker:9093","database.history.kafka.topic": "TOPIC_NAME" }
}'
启动连接器时,Debezium Kafka Connect API将显示以下错误消息:
2020-08-26 13:31:15,354 INFO || Kafka version: 2.5.0 [org.apache.kafka.common.utils.AppInfoParser]
2020-08-26 13:31:15,356 INFO || Kafka commitId: 66563e712b0b9f84 [org.apache.kafka.common.utils.AppInfoParser]
2020-08-26 13:31:15,356 INFO || Kafka startTimeMs: 1598448675354 [org.apache.kafka.common.utils.AppInfoParser]
2020-08-26 13:31:15,356 INFO || [Producer clientId=Oracle_12_2_ODS-dbhistory] Cluster ID: llDbLW94QVSmIeDrcJKXag [org.apache.kafka.clients.Metadata]
2020-08-26 13:31:15,362 INFO || [Consumer clientId=Oracle_12_2_ODS-dbhistory,groupId=Oracle_12_2_ODS-dbhistory] Cluster ID: llDbLW94QVSmIeDrcJKXag [org.apache.kafka.clients.Metadata]
2020-08-26 13:31:15,818 INFO || Requested thread factory for connector OracleConnector,id = Oracle_12_2_ODS named = change-event-source-coordinator [io.debezium.util.Threads]
2020-08-26 13:31:15,819 INFO || Creating thread debezium-oracleconnector-Oracle_12_2_ODS-change-event-source-coordinator [io.debezium.util.Threads]
2020-08-26 13:31:15,824 INFO || WorkerSourceTask{id=oracle-connector14-0} Source task finished initialization and start [org.apache.kafka.connect.runtime.WorkerSourceTask]
2020-08-26 13:31:15,829 INFO || Metrics registered [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:15,830 INFO || Context created [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:15,832 INFO || Snapshot step 1 - Preparing [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:15,942 INFO || Snapshot step 2 - Determining captured tables [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,318 INFO || Snapshot step 3 - Locking captured tables [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,321 INFO || Snapshot step 4 - Determining snapshot offset [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,348 INFO || Snapshot step 5 - Reading structure of captured tables [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,349 INFO || Snapshot step 6 - Persisting schema history [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,351 INFO || Snapshot step 7 - Snapshotting data [io.debezium.relational.RelationalSnapshotChangeEventSource]
2020-08-26 13:31:18,412 INFO || Snapshot - Final stage [io.debezium.pipeline.source.AbstractSnapshotChangeEventSource]
2020-08-26 13:31:18,413 INFO || Snapshot ended with SnapshotResult [status=COMPLETED,offset=OracleOffsetContext [scn=9653153220848]] [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:18,413 WARN || After applying blacklist/whitelist filters there are no tables to monitor,please check your configuration [io.debezium.relational.RelationalDatabaseSchema]
2020-08-26 13:31:18,413 INFO || Connected metrics set to 'true' [io.debezium.pipeline.metrics.StreamingChangeEventSourceMetrics]
2020-08-26 13:31:18,413 INFO || Starting streaming [io.debezium.pipeline.ChangeEventSourceCoordinator]
2020-08-26 13:31:18,529 ERROR || Producer failure [io.debezium.pipeline.ErrorHandler]
java.lang.RuntimeException: oracle.streams.StreamsException: ORA-26908: XStream API must be executed using a dedicated server process.
at io.debezium.connector.oracle.OracleStreamingChangeEventSource.execute(OracleStreamingChangeEventSource.java:78)
at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:108)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: oracle.streams.StreamsException: ORA-26908: XStream API must be executed using a dedicated server process.
(CONNECT_DATA =
(SERVER = dedicated)
)
任何想法,如何在连接器端或服务器端解决此问题? 我检查了Debezium文档,没有找到有关我可以设置的连接器属性的任何信息。 非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。