问题一:Flink CDC有没有抽oracle rac集群报过ORA-01291?
Flink CDC有没有大佬抽oracle rac集群报过ORA-01291?
参考回答:
作业时间太长,在这期间,源数据有改变,然后Oracle的日志文件发生了变化, 导致产生了这个错误,增加抽数线程,减少作业时间;或者减少每次抽的数量,分多次抽取;但这都只能减少ORA-01291的几率,并不能避免。要想避免,就把oracle的结构改一下,加上data guard,但这个方案就看你业务方够不够硬
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567841
问题二:Flink CDC中postgres cdc 如何从只读的从库获取 snapshot 数据?
Flink CDC中postgres cdc 如何从只读的从库获取 snapshot 数据?试了一下报这个错: Caused by: org.postgresql.util.PSQLException: ERROR: recovery is in progress?
参考回答:
从你的问题描述来看,你正在使用 Flink CDC 从 PostgreSQL 数据库中获取 snapshot 数据,但在尝试读取数据时遇到了错误,报错信息为 "Caused by: org.postgresql.util.PSQLException: ERROR: recovery is in progress"。这个错误提示通常表示 PostgreSQL 数据库正在进行恢复操作。
在 PostgreSQL 中,当主数据库服务器发生故障时,可以设置一个或多个从数据库服务器来接管主服务器的任务。在这个过程中,从数据库服务器会持续从主数据库服务器获取数据更改,以保持与主服务器的同步。当你尝试从正在恢复的从数据库服务器获取 snapshot 数据时,可能会遇到这个错误。
为了解决这个问题,你可以尝试以下方法:
- 等待恢复完成:等待 PostgreSQL 数据库的恢复操作完成后再尝试获取 snapshot 数据。这可能需要一些时间,具体取决于主数据库服务器和从数据库服务器之间的同步频率以及数据量。
- 配置 PostgreSQL 参数:在 PostgreSQL 配置文件中调整相关参数,以便更快地完成恢复操作。例如,可以增加
recovery_target_timeline
参数的值,将其设置为 "latest possible" 以加速恢复过程。 - 检查网络连接:确保 Flink CDC 与 PostgreSQL 数据库之间的网络连接稳定可靠。如果网络连接不稳定或存在延迟,可能会导致恢复操作出现问题。
- 使用专门的只读用户:在连接到 PostgreSQL 数据库时,使用专门的只读用户来获取 snapshot 数据。这样可以避免与正在进行的恢复操作冲突。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567840
问题三:Flink CDC为什么我集群资源充足 总是报这个错啊?
Flink CDC为什么我集群资源充足 总是报这个错啊?
参考回答:
Flink CDC 报错 NoResourceAvailableException
通常表示在请求资源时,Flink 集群没有足够的资源来满足请求。这可能是由于以下原因:
- 集群资源不足:虽然你说集群资源充足,但可能实际上并非如此。资源可能被其他任务或应用占用,或者集群的资源分配有问题。你需要检查集群的资源使用情况,确保有足够的资源来执行你的任务。
- 任务需要的资源超出集群可用资源:即使你的集群有足够的资源,如果你的任务需要的资源超过了集群的可用资源,也会导致这个错误。你需要检查任务的资源需求,并相应地调整它们。
- 任务调度问题:Flink 集群在调度任务时可能会出现问题。这可能是由于配置问题、网络延迟或其他原因导致的。你需要检查 Flink 的配置和集群的网络设置,确保它们是正确的。
- 任务过早完成:在某些情况下,当一个任务过早地完成时(例如,在获取部分数据时),也可能导致这个错误。这可能是因为任务的并行度设置得过高,或者是因为数据分布不均衡。你需要检查任务的并行度和数据分布情况。
解决这个问题需要具体分析你的集群和任务配置,以及任务的执行情况。你可能需要调整集群的配置、任务的并行度和资源需求,或者解决其他可能的问题。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567834
问题四:Flink CDC中oracle cdc遇到一个问题,数据还是无法同步,问下这个怎么处理呀?
Flink CDC中oracle cdc遇到一个问题,作业跑着提示The connector is now using the maximum batch size is 100000 when querying the LohMiner view ,This could be indicative of large SCN gaps 设置了debezium.log.mining.batch. size.max后没生效,数据还是无法同步,问下这个怎么处理呀?
参考回答:
这个问题可能是由于Flink CDC在查询LohMiner视图时,使用的批处理大小达到了这个问题可能是由于Flink CDC在查询LohMiner视图时,使用的批处理大小达到了最大值100000,这可能表明存在较大的SCN间隙。尽管您已经设置了debezium.log.mining.batch.size.max参数,但数据仍然无法同步。
为了解决这个问题,您可以尝试以下方法:
- 增加debezium.log.mining.batch.size.max的值。这将允许更大的批处理大小,从而减少SCN间隙的影响。例如,将该值设置为200000或更高。
debezium.log.mining.batch.size.max=200000
- 检查您的Oracle数据库和Flink集群之间的网络连接是否稳定。不稳定的网络连接可能导致数据传输延迟,从而影响SCN间隙。
- 检查您的Oracle数据库的日志文件是否包含足够的信息以供Flink CDC使用。如果日志文件中的信息不足,可能会导致SCN间隙较大。在这种情况下,您可能需要调整Oracle数据库的日志记录设置,以便为Flink CDC提供更多详细信息。
- 如果问题仍然存在,您可以考虑使用其他源连接器(如Debezium MySQL Connector)来捕获Oracle数据库的变化数据。这样,您可以避免SCN间隙的问题,并确保数据同步顺利进行。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567828
问题五:Flink CDC这个错该怎么搞呢?生产同一时间挂了好几个作业,都是binlog这样的错误?
Flink CDC这个错该怎么搞呢?生产同一时间挂了好几个作业,都是binlog这样的错误?
java.lang.IllegalStateException: The connector is trying to read binlog starting at Struct{version=1.6.4.Final,connector=mysql,name=mysql_binlog_source,ts_ms=1698886034135,db=,server_id=0,file=mysql-bin.001076,pos=4770201233,row=0}, but this is no longer available on the server. Reconfigure the connector to use a snapshot when needed.
at com.ververica.cdc.connectors.mysql.debezium.task.context.StatefulTaskContext.loadStartingOffsetState(StatefulTaskContext.java:194)
参考回答:
1:binlog被清理了
2:binlog消费太慢了,binlog还是被清理了,增加binlog保存时间,你说同一时间:我怀疑运维清空binlog了
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567824