整库同步后,一开始数据是一样的。过了一段时间后,doris比较多。而原始的mysql比较少。。。应该是部分删除的操作没有进行同步过来。不知道要怎么排查这个问题,不知道条件会出现这样的情况。
具体的效果是
Mysql版本
Doris 版本
Version : doris-2.0.3-rc06
启动代码:
bin/flink run-application -t yarn-application \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=2048m \
-Dtaskmanager.memory.managed.size=64m \
-Dtaskmanager.memory.network.max=64m \
-Dstate.backend.rocksdb.changelog.storage=rocksdb \
-Dstate.checkpoints.dir=hdfs://testhost:8020/flink/checkpoints/my_db_sync_table \
-Dstate.savepoints.dir=hdfs://testhost:8020/flink/flink-savepoints/my_db_sync_table \
-Dexecution.checkpointing.interval=10s \
-Dparallelism.default=1 \
-Dyarn.application.name="my_db_sync_app" \
-c org.apache.doris.flink.tools.cdc.CdcTools \
job_jar/flink-doris-connector-1.17-1.5.1.jar \
mysql-sync-database \
--database my_db \
--mysql-conf connectionTimeZone=Asia/Shanghai \
--mysql-conf scan.newly-added-table.enabled=true \
--mysql-conf server-id=5360 \
--mysql-conf hostname=192.168.1.102 \
--mysql-conf port=3306 \
--mysql-conf username=root \
--mysql-conf password='mypassword$r' \
--mysql-conf database-name=my_db \
--sink-conf fenodes=192.168.1.160:8030 \
--sink-conf username=root \
--sink-conf password='mypassword' \
--sink-conf jdbc-url=jdbc:mysql://192.168.1.160:9030 \
--sink-conf sink.label-prefix=my_db_sync1 \
--table-conf replication_num=1 \
--including-tables "test1|test2"
经过与doris沟通,给我的建议是增加binlog的保存天数。后面我从3天改成了5天。
经过一段时间的观察,发现mysql 数据库丢失了删除的日志。。。也就是说mysql没有把删除的信息写入到binlog日志中。但是不知道为什么会出现这种情况。