在一定时间后完成所有MySQL更改



我有一个系统,其中有一个mysql数据库,可以对其进行更改。然后我有其他机器每十分钟左右连接到这个 mysql 数据库,并重新下载有关它们的表(例如,一台机器可能会下载表 A、B、C,而另一台机器可能会下载表 A、D、E(。

如果不使用Debezium或Kafka,有没有办法在某个时间戳之后完成所有MySQL更改,以便仅将这些更改发送到请求更新的机器,而不是整个表?例如,机器X可能希望完成自上次联系mysql数据库以来的所有mysql更改,然后将这些更改应用于其自己的旧数据以对其进行更新。

有没有办法做到这一点?

MySQL可以设置为自动自动复制数据库,表等。如果连接丢失,它将在连接恢复时赶上。

看看这个页面 MySQL V5.5 复制,或者这个 MySQL V8.0 复制

如果您不想或可以部署 Kafka 集群,则可以将 Debezium 用作嵌入到应用程序中的库。

或者,您可以直接使用MySQL Binlog连接器(它也被下面的Debezium连接器使用(,它允许您从给定的偏移位置读取二进制日志。但是,您必须自己处理许多事情,这些事情已经由Debezium等解决方案处理,例如正确处理模式元数据和更改(例如,向现有表添加列(。通常这涉及解析MySQL DDL,这本身就非常复杂。

免责声明:我是Debezium的负责人

最新更新