当前位置: 首页 > 知识库问答 >
问题:

Debezium Mysql连接器失败,历史主题的IllegalStateException具有无限保留期

常枫涟
2023-03-14

我们有一个Debezium MySQL连接器,运行在历史主题已经有无限保留的地方。但奇怪的是,连接器突然出现故障,只有以下例外

"org.apache.kafka.connect.errors.ConnectException: java.lang.IllegalStateException: 
The database history couldn't be recovered. 
Consider to increase the value for database.history.kafka.recovery.poll.interval.ms

我可以注意到的另一件事是,由于在被监控数据库中创建和删除临时表(后面没有debezium连接器),有大量消息被插入到历史主题中。这些消息可能是连接器未能读取历史主题消息的原因吗?我们想过为历史主题启用日志压缩,但注意到几个建议不要启用的问题。https://issues.redhat.com/browse/DBZ-239.

删除历史记录主题并在schema_recovery模式下重新启动连接器可以重新启动连接器,但想知道可以采取哪些措施来避免这些类型的中断。是否有任何选项只允许存储被监视表的DDL消息。

共有1个答案

曹华荣
2023-03-14

我认为现在有一个选项,这取决于您使用的Debezium的版本,即数据库。历史百货商店只有捕获。桌子。ddl。

我自己没有试过这个,但我正在寻找类似的东西。留档声明如下;

一个布尔值,指定连接器是否应该记录所有DDL语句,真只记录那些与Debezium捕获其更改的表相关的DDL语句。请小心设置为true,因为如果您更改了捕获其更改的表,可能需要丢失数据。安全默认值为false。

我‘猜’如果你在连接器中严格控制正在监视的表,那么将其设置为true是安全的。

另一方面,对于恢复,您可能希望尝试提高database.history.kafka.recovery.poll.interval.ms的值(默认值为100ms)。

祝你好运

 类似资料:
  • 我想连接Java类文件与SQL server 2012。我已通过SQL server身份验证登录。但我接收到连接错误。 错误:到主机127.0.0.1端口1433的TCP/IP连接失败。错误:“连接拒绝:连接。验证连接属性。确保主机上正在运行SQL Server实例并接受端口上的TCP/IP连接。确保到端口的TCP连接没有被防火墙阻止。” 我的代码---

  • 我希望能够在部署失败后部署到我的数据库,因为在我的情况下,我正在处理并发和独立的部署。flyway clean命令有助于删除迁移表中失败的迁移。使用该命令有助于我将来执行部署,但缺点是我会丢失失败部署的历史记录。 有没有办法告诉flyway修复迁移表并保留失败部署的历史记录-例如将成功标志设为“2”。 在我的情况下,所有部署都是独立的,所以我们在部署时创建唯一的迁移号-这允许我们重新部署任何东西,

  • 问题内容: 我一直在跟踪Tyler Mcginnis的教程,并用React Router遇到了麻烦,尤其是历史记录。我最终逐字复制了他的代码只是为了看看是否只有我一个人,但我仍然 实现是: 我注意到的是模块中不存在,而是模块内部。遵循找到的API文档,我认为必须通过以下位置调用它: 这样做会产生错误。删除括号,会导致与上述历史记录相同的错误。 当我记录历史记录时,绝对是不确定的,这使我相信问题与i

  • 我使用一个VanillaChroncile临时存储和检索条目,除了有巨大的负载外,它工作得非常好。我得到地图失败异常。虽然我有处理此异常的恢复逻辑,但我想知道为什么首先会出现此异常。任何帮助都将不胜感激。 }

  • 我配置了一个无密码的SFTP服务器。我想使用带有用户名和密码的jsch(JAVA)库连接它。我一直在使用以下代码行:- JAVA中的这一行是否会覆盖SSH配置的设置(少密码)? 请注意SFTP服务器使用终端命令SFTP连接良好,没有提示密码。