问题一:mysq flink cdc 2.3.0报错,有大佬知道什么原因吗?
mysq flink cdc 2.3.0报错,有大佬知道什么原因吗?
org.apache.flink.util.FlinkRuntimeException: Chunk splitting has encountered exception at com.ververica.cdc.connectors.mysql.source.assigners.MySqlSnapshotSplitAssigner.checkSplitterErrors(MySqlSnapshotSplitAssigner.java:522) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.assigners.MySqlSnapshotSplitAssigner.getNext(MySqlSnapshotSplitAssigner.java:278) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.assigners.MySqlHybridSplitAssigner.getNext(MySqlHybridSplitAssigner.java:123) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.enumerator.MySqlSourceEnumerator.assignSplits(MySqlSourceEnumerator.java:201) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.mysql.source.enumerator.MySqlSourceEnumerator.handleSplitRequest(MySqlSourceEnumerator.java:117) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at org.apache.flink.runtime.source.coordinator.SourceCoordinator.lambda$handleEventFromOperator$1(SourceCoordinator.java:172) ~[flink-dist_2.12-1.14.0.jar:1.14.0] at org.apache.flink.runtime.source.coordinator.SourceCoordinator.lambda$runInEventLoop$8(SourceCoordinator.java:331) ~[flink-dist_2.12-1.14.0.jar:1.14.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_312] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_312] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_312] Caused by: java.lang.NoSuchMethodError: com.mysql.cj.CharsetMapping.getStaticCollationNameForCollationIndex(Ljava/lang/Integer;)Ljava/lang/String; at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.extractCharset(MySqlAntlrDdlParser.java:404) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0]
at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.resolveColumnDataType(ColumnDefinitionParserListener.java:155) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.enterColumnDefinition(ColumnDefinitionParserListener.java:82) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.ddl.parser.mysql.generated.MySqlParser$ColumnDefinitionContext.enterRule(MySqlParser.java:8316) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateEnterRule(ProxyParseTreeListenerUtil.java:46) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at io.debezium.connector.mysql.antlr.listener.MySqlAntlrDdlParserListener.enterEveryRule(MySqlAntlrDdlParserListener.java:89) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.enterRule(ParseTreeWalker.java:41) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:25) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0] at com.ververica.cdc.connectors.shaded.org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28) ~[flink-sql-connector-mysql-cdc-2.3.0.jar:2.3.0]"
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/474000?spm=a2c6h.13066369.question.31.4d426d0cTlhTgM
问题二:请问有没有人遇到过使用MySQL CDC,然后Flink jdbc写Oracle sink, 因为写入出错(Oracle报错)不断重试,导致Oracle连接被耗完?
请问有没有人遇到过使用MySQL CDC,然后Flink jdbc写Oracle sink, 因为写入出错(Oracle报错)不断重试,导致Oracle连接被耗完?
参考答案:
在使用MySQL CDC和Flink JDBC写入Oracle sink时,可能会遇到连接被耗尽的问题。这通常是因为写操作失败后,Flink会尝试重新连接到Oracle数据库,但是如果连接池中的连接数量不足,就会一直重试,导致连接被耗尽。
为了解决这个问题,可以考虑以下几种方法:
- 增加Oracle连接池的大小:可以尝试增加Oracle连接池的大小,以便在连接失败后有足够的备用连接可供使用。可以通过修改JDBC驱动程序的属性来设置连接池大小,例如通过在应用程序中设置
javax.sql.DataSource
属性来实现。 - 设置连接超时时间:可以在Flink应用程序中设置连接超时时间,以便在连接无法建立或保持活动一段时间后自动断开连接。这样可以避免无限期地等待连接建立或保持活动而导致连接被耗尽。可以在Flink应用程序中使用
org.apache.flink.streaming.api.functions.sink.SinkFunctionBuilder
的handleConnectionFailure
方法来设置连接超时时间。 - 优化写入操作:可以尝试优化写入操作,以减少写入失败的概率。例如,可以调整写入数据的频率和批量大小,以避免与数据库性能瓶颈之间的竞争。还可以使用更高效的写入方式,例如使用二进制日志格式(Binary Log Format)进行写入,以减少写入失败的可能性。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/496487?spm=a2c6h.13066369.question.32.4d426d0cfUlZn9
问题三:请问flink sql cdc pg或者mysql 报这个错的原因是什么?
请问flink sql cdc pg或者mysql 报这个错的原因是什么,报错: Exception in thread "main" org.apache.flink.table.api.ValidationException: Unable to create a source for reading table 'default_catalog.default_database.pgsql_source'
参考答案:
应该是你参数哪里没写对。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/492408?spm=a2c6h.13066369.question.33.4d426d0cZLyWLo
问题四:各位大侠,flink sql cdc pg或者mysql报这个错的原因是什么?
各位大侠,flink sql cdc pg或者mysql报这个错的原因是什么,报错: Exception in thread "main" org.apache.flink.table.api.ValidationException: Unable to create a source for reading table 'default_catalog.default_database.pgsql_source'
参考答案:
看报错是由于 Flink SQL CDC 模块无法正确连接到 PostgreSQL 或 MySQL 数据库引起的。
检查下数据库连接信息、数据库不存在或表不存在、数据驱动、数据库访问权限等。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/492444?spm=a2c6h.13066369.question.34.4d426d0cNyHZxZ
问题五:Flink CDC同步某张表报上述错误,其它表没遇到该问题。issue 里也看到类似报错,求解决方法
Flink CDC同步某张表报上述错误,其它表没遇到该问题。issue 里也看到类似报错,求解决方法 Flink: 1.15.2 Oracle-connector: 2.3.0 Database: Oracle 19c
io.debezium.DebeziumException: The db history topic or its content is fully or partially missing. Please check database history topic configuration and re-execute the snapshot.
参考答案:
可以issue页面关注更新 https://github.com/ververica/flink-cdc-connectors/issues/1737
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/483443?spm=a2c6h.13066369.question.35.4d426d0cqjQrRU