#apache-kafka #apache-kafka-connect #debezium
#apache-kafka #apache-kafka-connect #debezium
Вопрос:
Контекст: я установил кластер Kafka с диаграммой confluent helm в AWS Kubernetes.
И я настроил сервер Oracle, чтобы я мог подключиться к нему с помощью Kafka Connect.
Моя конфигурация Kafka connect
{
"name": "oracle-debez",
"config": {
"connector.class" : "io.debezium.connector.oracle.OracleConnector",
"tasks.max" : "1",
"database.server.name" : "servername",
"database.hostname" : "myserver",
"database.port" : "1521",
"database.user" : "myuser",
"database.password" : "mypass",
"database.dbname" : "KAFKAPOC",
"database.out.server.name" : "dbzxout",
"database.history.kafka.bootstrap.servers" : "mybrokersvc:9092",
"database.history.kafka.topic": "my-conf-topic",
"table.include.list": "MYSCHEMA.MYTABLE",
"database.oracle.version": 11,
"errors.log.enable": "true"
}
}
Я настроил таким образом, и некоторые темы созданы:
my-conf-topic: поставляется с таблицей DDL servername servername .MYSCHEMA.MYTABLE
В разделе «kafka-poc-dev.MYSCHEMA.MYTABLE» приведена вся информация из таблицы.
когда я запускаю плагин, вся информация успешно сохраняется! Но проблема в том, что каждая новая вставка или обновление не отображаются в теме.
Еще одна вещь, мой oracle не является версией 11, моя версия — Oracle Database 12c Enterprise Edition 12.1.0.2.0 — 64-разрядная версия, но если я не добавляю свойство «database.oracle.version»: 11, это выдает ошибку:
«org.apache.kafka.connect.errors.ConnectException: в производителе событий изменения произошло исключение. Этот соединитель будет остановлен.n tat io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42) n tat io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:82)n тат ио.дебезиум.трубопровод.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:140)n tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start $0(ChangeEventSourceCoordinator.java:113)n tat java.base/java.util.concurrent .Исполнители $RunnableAdapter.call(Executors.java:515) n tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)n tat java.base/java.util.concurrent .ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)n tat d.java:834)Ncпричина: oracle.streams.StreamsExa:343) n tat io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:70)nt… 7 moren»
Может кто-нибудь помочь мне понять, что я здесь делаю не так?
Теперь, когда я создаю соединитель, таблица блокируется .. и данные не поступают в разделы…
Спасибо!
Ответ №1:
Я столкнулся с аналогичной проблемой, но в настоящее время использую LogMiner adapter
.
Первоначальный снимок и потоковая передача работают просто отлично, но я не могу получить больше событий обновления / вставки, если я добавлю больше соединителей в Kafka Connect для мониторинга разных таблиц и схем.
Все просто перестает работать, хотя я вижу, что сеансы LogMiner все еще активны.
Вы включили Golden Gate
режим репликации и архивирования журнала?
Что касается database.oracle.version
проблемы, с которой вы столкнулись, вам следует просто использовать значение по умолчанию, как указано здесь:
"database.oracle.version" : "12 "
Публикация в качестве ответа, потому что я пока не могу комментировать.
Надеюсь, это вам как-то поможет.
Ответ №2:
Вы используете версию oracle для контейнеров и PDB, поэтому вам необходимо передать database.pdb.name ценность вашей собственности. у вас должен быть пользователь с доступом logminer или Xstream.