有很多工具可以读取MySQL binlog,例如: Tungsten,Maxwell,StreamSets,Debezium,Talend,Attunity等......它们都要求在MySQL中启用二进制日志记录,并且它们会在写入时读取这些二进制日志。
如果你有一个全新的数据库并从一开始就复制数据,这很好。我很想知道在启用binlog之前,如果你已经在MySQL中拥有大量数据会发生什么。
一种方法是停止数据库,以便不再向其写入数据,将数据复制到目标系统,启用binlog,然后重新启动。接下来,增量更改将附加到目标系统,在我看来,它不是MySQL - 因此需要一个可以写入除MySQL以外的数据库的解决方案。
我对此方法的一个担忧是停机时间。有没有人有更好的建议将MySQL数据库复制到另一种数据库?
答案 0 :(得分:1)
Debezium MySQL连接器可以获取initial snapshot个捕获的表。一旦完成,它就会透明地切换到binlog读取模式。虽然有一些锁(通常是很短的时间),但没有停机时间。
(免责声明:Debezium在这里领先)