tidb DM支持华为云RDS-MSYQL
看你们文档说是dm不支持华为云RDS-Mysql,我验证了一下,是可以同步的。我的验证逻辑是这样的: 按照文档中同步模式选择all,然后发现连通了,但是数据库和表不生成,但是在源库中改个值,binlog就过来了,但是报错,因为库表不存在。我就查原因。没查到。 后来,联系了华为云的技术支持,原来华为云RDS-MSYQL本地保存的binlog模式保存时长是0,就是被从库拉取后立刻就上传到OBS了,本地没有保存。 所以调整一下binlog的时间为非0后,(我调整的是72小时),同步就正常了。 原因分析,dm同步模式all的同步路径是先dump,后追binlog,我猜你们去锁定pos的时候,上游数据库保binlog的时间存参数为0可能就给你返回了什么非你们预知的参数,造成你们那啥了,请修改你们的DM 华为云支持那部分的说明。
请 @D3Hunter 确认下
@OliverS929
@alastori
The English translation for your reference @alastori:
I saw in your documentation that DM does not support Huawei Cloud RDS for MySQL, but I have verified that replication is possible. My verification logic is as follows: I selected the all replication mode as described in the documentation, and found that the connection was successful. However, the databases and tables were not created. When I modified a value in the source database, the binlog was sent over, but an error occurred because the databases and tables did not exist. I investigated the cause but found nothing.
Later, I contacted Huawei Cloud technical support. It turns out that for Huawei Cloud RDS for MySQL, the local retention period for binlogs is set to 0 by default, meaning that after a binlog is pulled by a replica, it is immediately uploaded to OBS and not retained locally.
After adjusting the binlog retention period to a nonzero value (I set it to 72 hours), replication worked normally.
Cause analysis: In all mode, DM’s replication path is to first dump, then follow the binlog. I guess that when DM tries to lock the position, the upstream database’s binlog retention parameter is set to 0, which might cause it to return an unexpected value to DM, leading to the issue. Please update the DM documentation for Huawei Cloud to reflect this behavior.