实时计算 Flink版操作报错合集之在设置监控PostgreSQL数据库时,将wal_level设置为logical,出现一些表更新和删除操作报错,怎么办

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。

问题一:Flink CDC里,ticdc老报这个是为什么?

Flink CDC里,ticdc老报这个是为什么?java.lang.NullPointerException: Failed to init client for PD cluster.



参考答案:

这个问题可能是由于在初始化PD(Placement Driver)集群客户端时出现了空指针异常。为了解决这个问题,你可以尝试以下方法:

  1. 检查你的Flink CDC和TiCDC配置是否正确。确保所有的配置参数都正确设置,例如TiCDC的地址、端口、用户名和密码等。
  2. 确保你的PD集群正常运行,并且可以正常访问。你可以通过访问PD集群的管理界面或者使用pd-ctl命令行工具来检查PD集群的状态。
  3. 如果你使用的是自定义的TiCDC Sink Connector,请确保你已经正确实现了initialize方法。在这个方法中,你需要创建一个PD集群客户端实例,并调用其init方法来初始化客户端。如果在这个过程中出现了空指针异常,可能是因为你在创建PD集群客户端实例时没有正确处理某些情况,导致对象为null。你可以使用try-catch语句来捕获这个异常,并在catch语句中输出详细的错误信息,以便进一步分析问题原因。
  4. 如果以上方法都无法解决问题,建议查看Flink CDC和TiCDC的日志文件,以获取更详细的错误信息和堆栈跟踪,以便进一步分析问题原因。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590875



问题二: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



参考答案:

把PDB1开启,alter session set container=pdb1;

alter pluggable database pdb1 open;



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590874



问题三:Flink CDC里关于postgres cdc的问题,配置做什么?

Flink CDC里关于postgres cdc的问题,配置wal_level = logical之后,有些表更新和删除会报错,必须要执行alter table xxx replica identity full吗?



参考答案:

参考:

https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-replica-autoset-type



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590870



问题四:Flink CDC里怎么解决?

Flink CDC里怎么解决? 我今天试了timestamp,到平台上执行就ok了,本地的估计是不行。checkpoint存储是在hdfs上,所以本地加上ck存储地址会报错无法执行。而且到平台上执行,timestamp开始时间节点的数据不是立马就展示的,而是要等到第1个checkppoint的检查点执行好才会出现。如图展示(timestamp为10点,任务是五分钟ck一次)



参考答案:

binlog太多了,一点点过滤,要不你把生产的binlog给清了启动。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590869



问题五:Flink CDC里这是什么情况?

Flink CDC里这是什么情况? 参考flink cdc 3.0 的文档: https://ververica.github.io/flink-cdc-connectors/master/content/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/mysql-starrocks-pipeline-tutorial-zh.html

简单验证了下。 目前有一个疑问想请教下:

  1. 从验证的步骤来看,可以通过bash bin/flink-cdc.sh mysql-to-starrocks.yaml 命令即可完成flink 到starrocks 的实时同步。在starrocks 的建表操作自动完成了,带来了便利性。 我们目前有些场景,使用starrocks 的smt 自动生成建表语句, 我们也希望对建表语句进行一些优化。 如果升级为3.0 的方式, 我们无法拿到flink 的sql语句。请问针对这种场景,有考虑支持把建表语句暴露出来给上层业务使用吗?或者针对这种使用场景有什么解决方案呢?1. 例如一些场景我们可以对starrocks 进行分桶等。
  2. 我们集成了一些对flink 的管理组件,例如streampark, 目前它是通过flink sql 来提交任务的。 如果升级为flink 3.0 的方式, 拿不到flink sql 的话,无法使用它对flink 的任务进行管理了。



参考答案:

dinky 已经实现了这个管理,可以去stream park去问问看,不一定完全依赖sql的。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590868

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
21天前
|
SQL 关系型数据库 数据库
【赵渝强老师】创建PostgreSQL的数据库
本文介绍了在PostgreSQL中通过SQL命令“create database”创建数据库的方法。首先查询系统目录pg_database以查看现有数据库集合,然后使用“create database”命令创建新数据库,并了解其在$PDATA/base目录下对应的文件夹生成。最后重新查询数据库集合确认创建结果,附带视频讲解便于理解操作步骤及注意事项。
|
2月前
|
关系型数据库 数据库 PostgreSQL
【赵渝强老师】PostgreSQL的模板数据库
在PostgreSQL中,创建新数据库时,默认通过拷贝`template1`实现。`template1`包含标准系统对象,可自定义以影响新数据库内容;而`template0`是纯净模板,仅含预定义对象且不应修改。视频讲解和代码示例展示了如何查看现有数据库信息及标识字段的作用。 ![图示](https://ucc.alicdn.com/pic/developer-ecology/yub6x2mlkqwck_398ed06397a44c2d9bfbb5ae5c90bbc0.png) [视频链接](https://www.bilibili.com/video/BV1szyfY4EQn)
【赵渝强老师】PostgreSQL的模板数据库
|
3月前
|
存储 关系型数据库 数据库
华为数据库openGauss与PostgreSQL使用对比
华为openGauss数据库基于PostgreSQL内核演进,进行了多项增强。密码认证从MD5升级为SHA256;字符串存储中,char(n)、varchar(n)的n由字符改为字节,新增nvarchar2(n)表示字符,最大存储100MB;且将空字符''统一转换为null,提升了数据处理的一致性和安全性。
292 12
|
4月前
|
存储 关系型数据库 分布式数据库
PolarDB PostgreSQL版:商业数据库替换与企业上云首选
PolarDB PostgreSQL版是商业数据库替换与企业上云的首选。其技术架构实现存储计算分离,具备极致弹性和扩展性,支持Serverless、HTAP等特性。产品在弹性、性能、成本优化和多模处理方面有显著提升,如冷热数据自动分层、Ganos多模引擎等。已在汽车、交通、零售等行业成功应用,典型案例包括小鹏汽车、中远海科等,帮助企业大幅降低运维成本并提高业务效率。
94 13
|
13天前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
2月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
13天前
|
存储 关系型数据库 MySQL
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
本文详细介绍了在 MySQL 中创建数据库和表的方法。包括安装 MySQL、用命令行和图形化工具创建数据库、选择数据库、创建表(含数据类型介绍与选择建议、案例分析、最佳实践与注意事项)以及查看数据库和表的内容。文章专业、严谨且具可操作性,对数据管理有实际帮助。
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
|
2月前
|
关系型数据库 MySQL 数据库连接
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
433 82
|
20天前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
25天前
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。

相关产品

  • 实时计算 Flink版