Skip to content

mysql to mysql最新数据未同步 #1059

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
lenovore opened this issue May 18, 2023 · 7 comments
Closed

mysql to mysql最新数据未同步 #1059

lenovore opened this issue May 18, 2023 · 7 comments

Comments

@lenovore
Copy link

lenovore commented May 18, 2023

Description

使用docker部署,拉取的镜像 actiontech/dtle:4.23.04.1。
阿里云RDS5.6同步到RDS5.7,全量同步完,增量同步追上master后,部分源表最新的一些数据(几条-几十条不等)一直都没有同步到目的表。在这期间,源表无写入操作,但就是不同步了。

比如:s_track.track_work_0全量+增量完后,最新的11条记录未同步到t_track.track_work_0表,然后过了几分钟s_track.track_work_0表写入了一些数据,那11条未同步的数据又同步过去了。但是后续s_track.track_work_0表有新数据写入,又出现部分最新数据未同步。

按照默认配置,不应该是实时全部同步的嘛。
image

之前拉取的actiontech/dtle:4.23.04.0镜像没出现过这样的问题。

Job配置

{
	"Job": {
		"ID": "dtle-track",
		"Datacenters": [
			"dc1"
		],
		"TaskGroups": [
			{
				"Name": "src",
				"Tasks": [
					{
						"Name": "src",
						"Driver": "dtle",
						"Config": {
							"Gtid": "",
							"ChunkSize": 5000,                                                    
							"ReplicateDoDb": [
								{
									"TableSchema": "s_track",
									"TableSchemaRename": "t_track",
									"Tables": [
										{
											"TableName": "track_work_0"
										},
										{
											"TableName": "track_work_1"
										},
										{
											"TableName": "track_work_2"
										},
										{
											"TableName": "track_work_3"
										},
										{
											"TableName": "track_work_4"
										},
										{
											"TableName": "track_work_5"
										},
										{
											"TableName": "track_work_6"
										},
										{
											"TableName": "track_work_7"
										},
										{
											"TableName": "track_record"
										}
									]
								}
							],
							"SrcConnectionConfig": {
								...
							},
							"DestConnectionConfig": {
								...
							}
						}
					}
				]
			},
			{
				"Name": "dest",
				"Tasks": [
					{
						"Name": "dest",
						"Driver": "dtle",
						"Config": {
							"DestType": "mysql"
						}
					}
				]
			}
		]
	}
}
@ghost
Copy link

ghost commented May 19, 2023

需要设置log_level=debug,复现,并提供日志。

@lenovore
Copy link
Author

dtle.log
开启debug,看日志没发现啥异常的。

@lenovore
Copy link
Author

这个日志是我换了镜像版本(actiontech/dtle:4.22.11.0)后的debug日志,结果也是一样,最新的数据就是不到目的表。

我之前是整库同步的,是没问题的,这次就是有重命名库并只同步部分表。

@lenovore
Copy link
Author

使用4.23.04.2版本,查看日志一直有警告信息
[WARN] reader: mysql.reader: QueryEvent is not recognized. will still execute: job=dtle-track query=COMMIT gno=89248399

增量阶段最新数据还是没同步

@lenovore
Copy link
Author

猜测原因是rds5.6实例从库不支持复制

@ghost
Copy link

ghost commented Jun 27, 2023

暂不考虑MySQL 5.6方面的修复.

但query event COMMIT是如何发生的, 以及代码上的支持需要考虑.

[WARN] reader: mysql.reader: QueryEvent is not recognized. will still execute: job=dtle-track query=COMMIT gno=89248399

理论上MyISAM表会出现query event COMMIT, 但aliRDS应该不支持MyISAM.

@ghost
Copy link

ghost commented Jun 27, 2023

  • 开通ali "RDS 5.6常规实例 (高可用版)".
    • 未开通读写分离.
  • 只给了一个连接地址&端口.
  • 连上后show slave status显示Running: Yes. 同时可执行写语句.
    • 所以不清楚连接的是RDS主实例还是从实例. 抑或是其并未使用MySQL原生复制.
  • 使用dtle复制到本地MySQL 8.0, 一切正常

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant