mysql5.6 数据 utf8mb4 转到 mysql5.7 版本 的,总是掉一小部数据 用 mysqldump 备份恢复的,有什么办法能丢失的数据尽量少些?

2020-03-18 10:15:42 +08:00
 python30
mysql5.6 数据 utf8mb4 转到 mysql5.7 版本 的,总是掉一小部数据 用 mysqldump 备份恢复的,有什么办法能丢失的数据尽量少些?

数据大约 2 万条 150M

mysqldump -u root -p xxx > xxx.sql

mysql -u root -p xxxx < xxxx.sql

有什么办法能丢失的数据尽量少些?
2695 次点击
所在节点    Python
14 条回复
gz911122
2020-03-18 10:18:18 +08:00
试试 datax 阿里的
EarthChild
2020-03-18 10:21:50 +08:00
MySQL 数据库同步神器 - Gravity
原始地址: https://github.com/moiot/gravity

同步地址: https://gitee.com/yunwisdoms/gravity
或许比 Datax 好用。
我对阿里系的不感兴趣。。。如相比 fastjson 我更倾向 jackson
xsm1890
2020-03-18 11:03:04 +08:00
为了你这个问题我还测试了下从 5.6 到 5.7 使用 utf8mb4,结果是不存在数据丢失的问题。按理来说,mysql 不会有这么低级的 bug 存在。是不是你表一直在进行业务操作,没有在 mysqldump 的时候保证数据版本的一致性啊
xyjincan
2020-03-18 13:44:57 +08:00
备份文件再恢复到 5.6 有数据丢失吗?
FFLY
2020-03-18 13:51:55 +08:00
mysqldump 都不锁表?
CallMeReznov
2020-03-18 13:57:42 +08:00
@EarthChild #2 这个实时性如何?
在实时性不强(更新较少的场景)能当简易的"从库"使用吗?
Reficul
2020-03-18 14:28:52 +08:00
mysqldump 为啥会少数据。。。
akira
2020-03-18 14:41:27 +08:00
mysqldump dump 下来的是文本文件,这个文本文件在导入的时候 ,不排除有部分 sql 语句识别有问题。 找到有问题的数据,针对性处理一下
python30
2020-03-18 14:59:33 +08:00
谢谢大家。

centos7.5 mysql5.6 utf8mb4 备份到 win7 mysql5.7 utf8mb4 试了几次,具体错误忘了。大概是字符集相关的错

至于为什么丢数据。也没有深入

最终还是用 mysqldump --skip-extended-insert -u root -p 没解决丢数据
但是 100 多 M 就少了两条。还算能接受
hefish
2020-03-18 16:17:21 +08:00
这要看是 mysql 的哪个版本,mariadb,percona server 还是 oracle mysql。
不同版本,表现还真不同。
个人是规规矩矩用 oracle mysql。percona 也行。mariadb 就。。。出过几次问题。自己 dump 出来的,居然导不进。导到一半报错。
python30
2020-03-18 23:48:25 +08:00
@xyjincan 再恢复到 5.6 正常。一条不丢。
python30
2020-03-18 23:49:32 +08:00
@hefish 确实。以前没注意这方面的事。
ps1aniuge
2020-03-19 00:10:40 +08:00
dump 出来,再恢复,恢复不了。那谁还敢用啊! 1 字节,1bit 都不应该错!

跟数据库版本应该无关,应该跟配置有关。你需要做的是,先同步数据库设定,配置。
然后,你应该这样测试:另找一台 mysql5.6 导入,看是否报错。不出错的话,配置不变,软件升级。
python30
2020-03-19 14:06:47 +08:00
@ps1aniuge
不重要的数据。没必要太较真了
要是重要数据就按你这步聚操作了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/653773

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX