Flink CDC中重新启动flink-sql,元数据没了。但有checkpoint和savepoint,这个job怎么恢复?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Flink CDC中,如果重新启动Flink SQL作业时发现元数据丢失,但存在Checkpoint和Savepoint,可以通过以下步骤恢复作业。以下是详细的恢复流程和注意事项:
在恢复作业之前,需要确认Checkpoint或Savepoint的状态集是否完整且未被清理: - 系统检查点(Checkpoint):由Flink系统自动管理,默认保留一个最新的Checkpoint用于作业恢复。 - 作业快照(Savepoint):由用户手动创建或定时生成,需确保目标Savepoint文件未被删除或过期。
重要提醒:
- 如果使用的是Paimon表,需确保对应的Tag已创建并长期保留,避免因快照过期导致恢复失败。
- 检查MySQL或MongoDB的Binlog或Oplog是否仍然保留,确保能够从指定位置继续消费。
根据业务需求,选择合适的恢复方式:
CALL `<catalog-name>`.sys.rollback_to('<database-name>.<table-name>', 'savepoint-${savepointID}')
在恢复作业时,需根据业务需求配置启动选项:
完成上述配置后,单击启动按钮,观察作业运行状态。如果启动失败,可通过以下方式排查问题: - 诊断工具:使用Flink Advisor诊断项,检查资源、网络、权限等问题。 - 日志分析:查看作业日志,定位具体错误原因。
通过以上步骤,您可以基于现有的Checkpoint或Savepoint成功恢复Flink CDC作业。如果仍有疑问,请提供更多上下文信息以便进一步协助。