anjia
(赵安家)
1
tidb 3.0.2 ,dm是v1.0.0-rc.1-23-gc1ba82a
默认创建的tidb是root,空密码,此时已经开启了dm同步了(all),正常同步时(sync),修改root密码(但是没update-task),但是dm仍然正常sync且running中,隔了一天多,才报执行sql异常,
[code=10006:class=database:scope=not-set:level=high] execute statement failed: ALTER TABLE `xxxdb`.`xxtable` ADD INDEX `xxxxindex`(`OUTTRADENO`): Error 1045: Access denied for user 'root'@'xx.xx.xx.xx worker' (using password: NO)
并且我在报错之前,还特意pause & resume(但是没update)(希望能够断开已有连接)
但是使用navicat连的时候,确实需要使用密码了
通过看文档,发现此情况需要stop & start,单纯的通过update-task不行
所以,是否需要修改task.yaml,的mode改成从all改成incremental?如果不改会不会先把已有库drop,再重新create?
如果改成 incremental 了,会从现有的relaylog继续订阅binlog,还是从master重新全量拉取binlog?
anjia
(赵安家)
2
CREATE USER 'anjia'@'%' IDENTIFIED BY 'anjia';
GRANT Select ON *.* TO 'anjia'@'%';
FLUSH PRIVILEGES ;
此时用navicat正常连接,正常查询。
ALTER USER 'anjia'@'%' IDENTIFIED BY 'anjia1';
FLUSH PRIVILEGES ;
修改了密码,源navicat关闭后,重新打开,还是能正常连接。
把navicat进程关掉后,再次打开后,无法正常连接,说明密码生效了。
不懂就问
(zhouyueyue)
3
开启 DM 且 mode 为 all 时,会先进行全量数据的同步,如果数据量大,时间会比较久,等读到修改密码的 binlog event 再应用到下游是有时间差的。另外,stop & start 的时候不需要该 mode,会从之前的点开始拉取 binlog,不会 drop 已有数据。
anjia
(赵安家)
4
已经从unit dump 变成了sync了,并且sync了一段时间了,想改密码,改完,又活蹦乱跳的运行了一两天,没事,这期间,我还pause & resume(未update也未stop,start),也正常。第三天,突然不行了。时间也太久了。是因为tidb缓存了session么?感觉有一定的安全隐患
不懂就问
(zhouyueyue)
5
根据上面给出的信息,是修改的时候已经是 sync 状态,需要确认下从修改到出现最开始的报错,是经过了1天还是三天?
anjia
(赵安家)
6
有几个task已经暂停了,目前正在走stop start方式。
还有两个任务,到现在也是running状态,但是表从昨天下午就停止更新了,看日志没有任何报错。
不懂就问
(zhouyueyue)
7
表没有数据更新,但是连接一直在,显示 running 状态也没问题。
不懂就问
(zhouyueyue)
9
query-status 查下,看有没有异常信息。
anjia
(赵安家)
10
没有任何报错信息,不过防止后边报错,又统一都stop & 修改配置文件& start的。
pause 任务的时候,对下游数据库的链接不会断开。只要没出现异常,这个链接还在,所以可以继续同步。
anjia
(赵安家)
13
统一修改后,统一stop & restart的,现在没问题了
1 个赞
system
(system)
关闭
14
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。